我有一個基本的PHP文件上傳腳本,直到最近一直工作得很好。上傳腳本未做任何更改。通過測試/故障排除,我注意到,如果jpeg圖像方向處於橫向(寬度大於高度),並且文件大於4.5MB,則下載鎖定大約爲上傳文件的7%。如果我將圖像旋轉到縱向並保持文件大小相同,或者如果我縮小圖像大小並將其保持橫向,則上傳將完成。PHP的圖像上傳不能在橫向工作
我難過的是,縱向放大的文件會上傳得很好,上傳文件到服務器時圖像方向是否重要?
首先我使用Javascript和AJAX來設置上傳,然後調用一個PHP腳本。的JavaScript/AJAX是:
function uploadFile()
{
var formdata = new FormData();
var location=document.getElementsByName("file");
var file = location[0].files[0];
formdata.append("file", file,location[0].id+"_"+date+"."+file.type.substring(file.type.indexOf("/")+1));
var ajax = new XMLHttpRequest();
_("progressBar").style.visibility="visible";
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.addEventListener("error", errorHandler, false);
ajax.addEventListener("abort", abortHandler, false);
ajax.open("POST", "as_built_replace_uploader.php");
ajax.send(formdata);
}
我對上傳PHP是:
$filename = $_FILES["file"]["name"];
$file_tmp_loc = $_FILES["file"]["tmp_name"]; // File in the PHP tmp folder
$file_type = $_FILES["file"]["type"]; // The type of file it is
$file_size = $_FILES["file"]["size"]; // File size in bytes
$file_error_msg = $_FILES["file"]["error"]; // 0 for false... and 1 for true
$wildcard="maps/".substr($filename,0,strpos($filename,"."))."*";
foreach (glob($wildcard) as $path)
{
unlink($path);
}
if(move_uploaded_file($file_tmp_loc,"maps/".$filename))
請將php文件上傳腳本代碼添加到您的問題 –
考慮到PHP在上傳過程中甚至沒有讀取文件,我會在其他地方搜索該問題。也許你有一個客戶端庫來操縱圖片或是一個非常挑剔的安全軟件。 (我也注意到你讀了'$ _FILES [「file」] [「error」]'但似乎並沒有使用它 - 它甚至不是0或1,正如評論所說。) –
我正在使用$ _FILES [「文件」] [「錯誤」]在開始時進行故障排除,但目前不是。那麼你是否說在我的PHP腳本開始之前AJAX事務期間發生了掛斷? – Ingo