以下代码在我的localhost上运行良好,但它在我的实时服务器上显示以下错误
警告: move_uploaded_file(... / uploads / 76948893.jpeg):无法打开流:没有此类文件或目录
警告: move_uploaded_file():无法将'/ tmp / phppxvRs8'移至'... / uploads / 76948893.jpeg'
它做的很简单,它采用来自html表单的数组[“pictures”]上的图像,并使用随机数字名称保存文件夹“... / uploads /”上的每个图像作为名称文件并保留原始扩展名。
任何人都知道如何让它在我的服务器上运行?
//Image Uploader
$images=[];
$directory = '.../uploads/';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
$new_file_name = rand (10000000,99999999);
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
/* echo '<br>';
echo $directory.$new_file_name.".".substr($_FILES['pictures']['type'][$key],strpos($_FILES['pictures']['type'][$key], "/")+1);*/
if(move_uploaded_file($_FILES['pictures']['tmp_name'][$key],
$directory
.$new_file_name
.".".substr($_FILES['pictures']['type'][$key],strpos($_FILES['pictures']['type'][$key], "/")+1))) {
array_push($images,$new_file_name.".".substr($_FILES['pictures']['type'][$key],strpos($_FILES['pictures']['type'][$key], "/")+1));
$images_validator=true;
}else{
//Error
}
}
}
答案 0 :(得分:1)
这可能有很多原因,请查看以下内容
您需要uploads
目录的WRITE权限。我假设你的本地机器运行windows&amp;你的托管环境是linux
像@Darren建议的那样,使用绝对路径。将$directory
更改为$directory = getcwd() . 'uploads/';
答案 1 :(得分:0)
如果这在您的本地计算机上运行但在服务器上运行,则有2个简单的答案我可以在后面思考。 1.该文件夹不存在于服务器上,2。有人评论您没有权限写入/读取服务器上的该文件夹....我会检查服务器配置以确保您的应用程序池或用户已阅读/写入文件夹的权限