我正在尝试通过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 ) )
答案 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>