|
Posted by Jerry Stuckle on 09/29/46 11:55
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
==================
Navigation:
[Reply to this message]
|