(初學者)通過PHP上傳文件
上傳我的文件時遇到了問題。我看到文件名被髮布到數據庫,但該文件沒有被髮布到圖像文件夾。似乎沒有任何事情發生。這是我下面的代碼,請告訴我什麼,我需要改變:
<?php
//the $art variable gets posted to a database eventually
$art = mysql_real_escape_string(stripslashes($_FILES["art"]["name"]));
$art_ext = pathinfo($art, PATHINFO_EXTENSION);
$art = md5($art).".".$art_ext;
if($art!=""){
move_uploaded_file($art, "images/".$art);
}
?>
<script type="text/javascript">
$(function(){
image_upload = {
UpdatePreview: function(obj){
// if IE < 10 doesn't support FileReader
if(!window.FileReader){
// don't know how to proceed to assign src to image tag
} else {
var reader = new FileReader();
var target = null;
reader.onload = function(e) {
target = e.target || e.srcElement;
$("#imageupload").attr("src", target.result);
};
reader.readAsDataURL(obj.files[0]);
}
}
};
});
</script>
<form action="new.php" method="post" enctype="multipart/form-data">
<input type='file' name='art' id="file" onchange='image_upload.UpdatePreview(this)' value="Upload" accept="image/gif,image/jpeg,image/png"/>
</p>
<p>upload a image! (.gif, .jpg, .png formats allowed. 5MB max)</p>
<img id="imageupload" src="1x1.png" alt="test" />
<input type="submit" class="smallbtn4" style="cursor:pointer;" value="post"/>
</form>
看來我要與文件名的問題。 move_uploaded_file函數的第一個變量是上傳文件的實際名稱 - 首先你不能使用md5。你可能打算做的是用md5哈希名稱保存它。回顧函數的定義,我們看到以下內容:'bool move_uploaded_file(string $ filename,string $ destination)' - 如果您是英語用戶,我建議您查找並下載'php_enhanced_en.chm'。這是PHP幫助文件,增強了來自PHP站點的用戶註釋。它大約是29MB(它包含1000個代碼片段) – enhzflep