简体   繁体   中英

PHP move_uploaded_file not working into public server

I am trying to upload my php project into public server. I made the image upload file when I create product or edit product. It works in localhost, but when I move to public server, it is not working. I think move_uploaded_file part does not working. How can I change the link? or do I have to change anything? When I see Filzilla, I can see remote site that it is '/www/eshopProject/inventory_images'. And index file is '/www/eshopProject/storeAdmin'. Do I have to change link like this? I don't know how can I change the link. Could you help me? uploading the image into public server is not working.. Is it any security issue? or something? Please help me. Thanks.

--index.php--

$pid = mysql_insert_id();
//Place image in the folder
$newname = "$pid.jpg";
move_uploaded_file($_FILES['fileField']['tmp_name'], "../inventory_images/product_$newname");

First of all check the permissions of the directory as mentioned in come of the comments. If you have shell access "chmod 777 target_dir" or "chmod 707 target_dir" should be sufficient.

Second try to debug it using if's and the file_exists function( http://php.net/manual/en/function.file-exists.php ).

Something like this.

$uploadedFile = $_FILES['fileField']['tmp_name'];
$destination = "../inventory_images/product_$newname";

if(file_exists($uploadedFile))
{
   echo "file uploaded to temp dir";
}
else
{
   echo "file upload failed";
   exit();
}

if(move_uploaded_file($uploadedFile, $destination))
{
   echo "upload complete";
}
else
{
   echo "move_uploaded_file failed";
   exit();
}

You can also check your current working directory by using the FILE or DIR constants( http://php.net/manual/en/language.constants.predefined.php ).

Try this.

echo __FILE__;
echo dirname(__FILE__);
echo __DIR__;

确保您也为您尝试上传的文件夹设置了写入文件权限。

Use the copy() method. For me it worked.

copy($tmp_file, Destination) or
copy($tmp_image, IMAGE_DIRECTORY . SAM . $product_image); 

I recommend setting the folders to "755" permissions and retry. This would make the permissions a little tighter.

This question is a bit old but i recently faced a similar issue where even with permission 777 on the upload folder it wouldn't work. The issue was that the SELinux ( https://wiki.centos.org/HowTos/SELinux ) was on enforcing mode so i had to change it to permissive mode and then the upload works perfectly. I hope this can help someone facing this issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM