我嘗試用php編寫圖片上傳器。但是,當我嘗試時它會給出錯誤。用PHP腳本上傳圖片時發生嚴格的標準錯誤
錯誤是:
嚴格的標準:只有變量應該通過引用在C通過:\ XX \ XX \ XX \上線profile_image_upload_script.php 10
線10是:$extension = end(explode(".", $file_name_encrypted));
圖片上傳腳本
<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$file_name = $_FILES["file"]["name"];
echo "File name:".$file_name;
$file_name_encrypted = $file_name."".md5(rand(1, 1000000));
$extension = end(explode(".", $file_name_encrypted));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 2097152) // 2 MB
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $file_name_encrypted . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"]/1024*1024) . " MB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("upload/" . $file_name_encrypted))
{
echo $file_name_encrypted . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $file_name_encrypted);
echo "Stored in: " . "upload/" . $file_name_encrypted;
}
}
}
else
{
echo "Invalid file";
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
?>
注:腳本是從HTML表單獲取文件名,是沒有問題的
另外md5不是加密。 –