Php 移动\u上传的\u文件()在本地主机上但在服务器上工作
下面的代码在我的本地主机上运行良好,但在我的live server上显示了以下错误 警告:移动上传的文件(…/uploads/76948893.jpeg):无法打开流:没有这样的文件或目录 警告:移动上传的文件():无法将“/tmp/phppxvRs8”移动到“…/uploads/76948893.jpeg” 它所做的很简单,它获取来自html表单的数组[“pictures”]上的图像,并将每个图像保存在文件夹“../uploads/”中,使用随机数字名称作为文件名,并保留原始扩展名 有人知道如何在我的服务器上工作吗Php 移动\u上传的\u文件()在本地主机上但在服务器上工作,php,Php,下面的代码在我的本地主机上运行良好,但在我的live server上显示了以下错误 警告:移动上传的文件(…/uploads/76948893.jpeg):无法打开流:没有这样的文件或目录 警告:移动上传的文件():无法将“/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
}
}
}
//图像上传器
$images=[];
$directory='…/uploads/';
foreach($_文件[“图片”][“错误”]为$key=>$error){
$new_file_name=rand(10000009999999);
如果($error==UPLOAD\u ERR\u OK){
$tmp_name=$_文件[“图片”][“tmp_名称”][$key];
$name=$_文件[“图片”][“名称”][$key];
/*回声“
”;
echo$directory.$new_file_name.“.”.substr($_FILES['pictures']['type'][$key],strpos($_FILES['pictures']['type'][$key],“/”+1)*/
如果(移动上传的文件($文件['pictures']['tmp\U name'][$key],
$directory
.$new\u文件名
.substr($_文件['pictures']['type'][$key],strpos($_文件['pictures']['type'][$key],“/”)+1))){
数组推送($images,$new_file_name.“.”。substr($_FILES['pictures']['type'][$key],strpos($_FILES['pictures']['type'][$key],“/”+1));
$images\u validator=true;
}否则{
//错误
}
}
}
原因可能很多,请检查以下内容
上载
目录具有写入权限。我假设您的本地计算机运行windows&您的托管环境是linux$directory
更改为$directory=getcwd()上传/'代码>
如果它在本地机器上运行,而不是在服务器上运行,那么我可以马上想到两个简单的答案。1.服务器2上不存在该文件夹。有人评论说,您没有权限在服务器上写入/读取该文件夹……我会检查服务器配置,以确保您的应用程序池或用户具有对该文件夹的读取/写入权限What@Fred ii-所说,然后尝试绝对路径而不是相对路径。(将
$directory
更改为$directory=getcwd().“uploads/”;
)另外,您需要将../
更改为。/
2点而不是3点。感谢您的回复。文件夹权限听起来可能是问题所在,但我已将ftp中的文件夹权限设置为RWXRWX,但仍然显示相同的问题。。。是否有其他方法来设置权限?(我是这方面的新手…(3点没问题,因为上传文件夹就在这里)我的错!你知道这两个点是对的!弗雷德,谢谢你两个正确的答案!