|
Posted by mpar612 on 10/14/39 11:55
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!
Navigation:
[Reply to this message]
|