简单的PHP图像移动

时间:2015-03-06 02:26:34

标签: php apache http file-upload image-uploading

我正在尝试在第二个示例中移动要通过下面的PHP重命名的上传图像(以及Android),以便它们的名称不会发生冲突。下面的原始示例正确上载文件但可能存在命名冲突。我遇到的错误是move_uploaded_files函数失败,我不确定为什么。该目录显示相同,但​​我可能是错的,问题是图像永远不会从临时目录移动。最重要的是,我认为这只是一个目录问题,因为原始示例有效。如果您需要更多信息,请与我们联系。我要去的例子位于:How to rename uploaded file before saving it into a directory?

原件:

$uploaddir = './appphotos/';   
$absPath = 'https://'.$_SERVER['HTTP_HOST'].'/complaint_desk/appphotos/'; 
$file = basename($_FILES['userfile']['name']);
$uploadFile = $file;
$newName = $uploaddir . $uploadFile;

新尝试:

$temp = explode(".",$_FILES["userfile"]["name"]);

echo json_encode($temp);
$newfilename = rand(1,99999) . '.' .end($temp);
echo json_encode($newfilename);

$uploadFile = move_uploaded_file($_FILES["userfile"]["name"], "/var/www/complaint_desk/appphotos/" . $newfilename);    echo json_encode($uploadFile);

1 个答案:

答案 0 :(得分:0)

您应该使用以下功能:

if(move_uploaded_file($_FILES["userfile"]["tmp_name"], "./appphotos/" . $newfilename)) {
  echo json_encode($uploadFile); // why do you want to encode it?
} else {
  echo 'File failed to move';
}

始终检查move_uploaded_file()的结果。此外,该文件在移动之前位于$_FILES["userfile"]["tmp_name"]


此外,$absPath不正确。它不应该以http协议开始。它应该看起来像/var/www/complaint_desk/appphotos/C:/complaint_desk/appphotos/