PHP文件上传的图像不加载到服务器
问题描述:
我试图上传通过PHP的映像文件,它是不工作: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))
答
变化:
move_uploaded_file($_FILES['fileToUpload']['name'], $target_dir);
要:
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)
答
变化move_uploaded_file($_FILES['fileToUpload']['name'], $target_dir);
到move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target_dir);
move_uploaded_file
,以便它上传,而不是原来所需要的临时文件名文件的名称,因为它需要一个资源移动。
答
上传的文件实际上是$_FILES['fileToUpload']['tmp_name']
,这是您需要移动的文件。
一个很好的方式去是这样的:
$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);
目标目录(*/home/NAME/uploads/*)是否具有正确的读写权限? – Ben
是的我有chmod 777-ed它 – user1011332
你有权限访问tmp目录吗? – schellingerht