|
Posted by mpar612 on 10/14/70 11:55
Jerry Stuckle wrote:
> mpar612 wrote:
> > B.r.K.o.N.j.A wrote:
> >
> >>mpar612@gmail.com wrote:
> >> > Hello,
> >> >
> >> > I am a newbie to PHP, MySQL. I am trying to create a basic file upload
> >> > form. I want to get that working and then I want to integrate that
> >> > into a form that will rename the file and save it to a directory and
> >> > store the path to the file in the db, in addition to storing other text
> >> > from other fields in the form. Then I will get that path using PHP to
> >> > display the image file in a browser.
> >> >
> >> > First things first, I'm having difficulty getting the basic file upload
> >> > form working.
> >> >
> >> > Here is the code I am using:
> >> >
> >> > <form enctype="multipart/form-data" action="<?php print
> >> > $_SERVER['PHP_SELF']; ?>" method="post">
> >> > <input type="hidden" name="MAX_FILE_SIZE" value="50000">
> >> > Select a file: <input name="upfile" type="file">
> >> > <input type="submit" value="Upload">
> >> > </form>
> >> >
> >> > <?php
> >> > $uploaddir = "uploads/";
> >> > $uploadfile = $uploaddir . $_FILES['upfile']['name'];
> >> > if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
> >> > move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile);
> >> > print("File upload was successful");
> >> > } else {
> >> > print("File upload failed");
> >> > }
> >> > print_r($_FILES);
> >> > ?>
> >> >
> >> > When I load the page the following text is always displayed on the
> >> > page:
> >> > "File upload failedArray ( )"
> >> >
> >> > When I upload a file I recieve the following text on the page:
> >> > "File upload was successfulArray ( [upfile] => Array ( [name] =>
> >> > testing.php [type] => application/octet-stream [tmp_name] =>
> >> > /tmp/phpVtNHIr [error] => 0 [size] => 574 ) )"
> >> >
> >> > I think my issue is with the $_FILES. Do I have to change the name and
> >> > tmp_name values? The documentation is sort of vague to me, but then
> >> > again I am pretty new to this. I know there are security issues and
> >> > there is a lot more that needs to be done, but I need to start with the
> >> > basics here.
> >> >
> >> > Any input or advice that anyone can give would be greatly appreciated.
> >> > Also, if there are any online references that you could provide would
> >> > be great. Thanks in advance!
> >> >
> >>
> >>Jerry told you the reason, and here is (sort of) solution. Execute php
> >>code only when page was POST requested (meaning that the form was submitted)
> >>to do so simply wrap your php code in one more if...
> >><?php
> >>if($_SERVER['REQUEST_METHOD']=='POST'){
> >>$uploaddir = "uploads/";
> >> $uploadfile = $uploaddir . $_FILES['upfile']['name'];
> >> if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
> >> move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile);
> >> print("File upload was successful");
> >> } else {
> >> print("File upload failed");
> >> }
> >> print_r($_FILES);
> >>}
> >>?>
> >>
> >>That should work... :)
> >>--
> >>
> >>B.r.K.o.N.j.A = Bionic Robotic Knight Optimized for Nocturnal Judo and
> >>Assasination
> >
> >
> > Thank you for the response. It's still not working. I checked the
> > path and I checked the file permissions and everything looks right.
> >
> > I get the following from print_r: Array ( [upfile] => Array ( [name] =>
> > Jets.jpg [type] => image/jpeg [tmp_name] => /tmp/phpu6J23o [error] => 0
> > [size] => 27241 ) )
> >
> > I think those results look to be normal, but I'm not 100% sure. Does
> > anyone have any thoughts on this?
> >
> > Thanks!
> >
>
> What message are you getting now? And what's the response from
> move_uploaded_file?
>
> You're trying to put the file in the 'uploads' directory, which would be
> relative to this script. Does it exist, and does the Apache user have
> write access to this directory? Does the file exist?
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstucklex@attglobal.net
> ==================
Thanks for your response. I think I just solved my own problem. I
need to ensure that the temporary directory is titled "tmp_name". Is
there a particular reason why the directory has to be called
"tmp_name"? I tried changing it to just "tmp" and the script would not
work.
Thank you so much for all of your help.
[Back to original message]
|