Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP move_uploaded_file not working into public server

Tags:

php

image

upload

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");
like image 655
wholee1 Avatar asked Dec 28 '22 04:12

wholee1


2 Answers

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__;
like image 65
Jiho Kang Avatar answered Jan 31 '23 02:01

Jiho Kang


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

copy($tmp_file, Destination) or
copy($tmp_image, IMAGE_DIRECTORY . SAM . $product_image); 
like image 44
samin Avatar answered Jan 31 '23 02:01

samin