[英]move_uploaded_file() working on localhost but on server
以下代碼在我的本地主機上可以正常工作,但在實時服務器上顯示以下錯誤
警告: 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
}
}
}
可能有很多原因,請檢查以下內容
您需要對uploads
目錄具有寫權限。 我假設您的本地計算機運行Windows,並且您的托管環境是linux
就像@Darren建議的那樣,使用絕對路徑。 將$directory
更改為$directory = getcwd() . 'uploads/';
$directory = getcwd() . 'uploads/';
如果這是在您的本地計算機上運行,而不是在服務器上運行,那么我可以立即想到兩個簡單的答案。 1.該文件夾在服務器上不存在,2.由於有人評論您沒有寫/讀該服務器上的文件夾的權限....我將檢查服務器配置,以確保您的應用程序池或用戶已讀/對該文件夾的寫權限
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.