我無法真正閱讀PHP,但我試圖通過php在我的頁面上傳一個csv文件,並得到以下錯誤。我知道有很多討論這個問題的線索,但我不太明白他們的意思。如果有人能向我解釋發生了什麼並提供修復,請尋找答案。「只能通過引用傳遞變量」錯誤
嚴格標準:只有變量應參考 在C下通過:\ XAMPP \ htdocs中\搜索\ PHP \裝載機\ csvFileUploader1.php上 線
失敗要上傳的文件> > >錯誤代碼:
這裏的PHP
<?php
// using upload at click from http://code.google.com/p/upload-at-click/
// FileData is the name for the input file
$file_result = "";
$file = $_FILES['Filedata'];
$allowedExtensions = array("csv", "txt");
$extension = end(explode(".", $file["name"]));
function isAllowedExtension($fileName) {
global $allowedExtensions;
return in_array(end(explode(".", $fileName)), $allowedExtensions);
}
if($file["error"] > 0){
echo "failure to upload the file >>> ". "Error code: ".$file["error"]."<br>";
}else{
//echo " >>> CURRENT DIR: ".getcwd() . "\n";
$workDir = getcwd();
$dir = substr($workDir, 0, -10);
$path = $file["name"];
$newFileLoc = $dir.$path;
$file_result.=
"<br> Upload: " . $file["name"] . "<br>" .
" Type: " . $file["type"] . "<br>" .
" Size: " . $file["size"] . "<br>" .
" file uploaded to: ".$newFileLoc."<br>";
// txt - text/plain
// rtf - application/msword
// dat/obj - application/octet-stream
// csv - application/vnd.ms-excel
// maximum 200 MB file - 200,000,000 k
if ( ($file["type"] == "application/vnd.ms-excel" || $file["type"] == "text/plain")
&& isAllowedExtension($file["name"])
&& ($file["size"] < 200000000)
)
{
move_uploaded_file($file["tmp_name"], $newFileLoc);
//echo $file_result.=" >>> File uploaded successfull!!";
echo "|".$path;//"filePath : " . $newFileLoc;
}else{
echo " >>> NOT a file valid: ". isAllowedExtension($file["name"]);
}
}
?>
[end()'](http://php.net/manual/en/function.end.php)的文檔講述了'數組是通過引用傳遞的,因爲它被功能。這意味着您必須將它傳遞給一個實變量,而不是返回數組的函數,因爲只有實際變量可以通過引用傳遞。 – kapa 2012-08-15 22:12:20
在使用相同的PHP文件之前,我已經能夠將其他.csv文件上傳到我的頁面中,怎麼樣? – user1518600 2012-08-15 22:18:52
這是一個很好的問題。另外,爲了獲得文件的擴展名,你可以簡單地使用'$ extension = pathinfo($ file [「name」],PATHINFO_EXTENSION);'。更清潔,沒有涉及的技巧。 – kapa 2012-08-15 22:22:05