PHP文件上传图片未加载到服务器

时间:2016-01-13 13:31:34

标签: php image upload

我正在尝试通过php上传图像文件但它无法正常工作:

<?php
$target_dir = "/home/NAME/uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

move_uploaded_file($_FILES['fileToUpload']['name'], $target_dir);

$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

print_r($_FILES);
?>

这是返回的内容,但实际上没有文件上传。有谁知道发生了什么?感谢

Array ( [fileToUpload] => Array ( [name] => followers.png [type] => image/png [tmp_name] => /tmp/phpKsuz1B [error] => 0 [size] => 127008 ) )

3 个答案:

答案 0 :(得分:3)

变化:

  move_uploaded_file($_FILES['fileToUpload']['name'], $target_dir);

要:

  move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)

答案 1 :(得分:2)

move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target_dir);更改为move_uploaded_file

$_FILES['fileToUpload']['tmp_name']需要临时文件名才能上传,而不是文件的原始名称,因为它需要移动资源。

答案 2 :(得分:1)

上传的文件实际上是$tempFile = $_FILES['fileToUpload']['tmp_name']; $destFile = '/dest/directory/' . $_FILES['fileToUpload']['name']; // You'll now have your temp file in destination directory, with the original image's name move_uploaded_file($tempFile, $destFile); ,这是您需要移动的文件。

解决这个问题的一个好方法是:

image01.jpg

一个好的做法是保持文件名的唯一性,因为您永远不知道何时可以将不同的图像命名为$tempFile = $_FILES['fileToUpload']['tmp_name']; $destDir = '/dest/directory/'; $destName = uniqid() . '_' . $_FILES['fileToUpload']['name']; $destFile = $destDir . $destName; // Temp file is now in destination directory, with a unique filename move_uploaded_file($tempFile, $destFile); (通常比人们希望的更多)。

rebase -i <SHA of the last commit onto you rebase>
相关问题