我试图让用户将他们的图片上传到网站并按原始文件名显示。在英语中,一切都按计划进行,但是当我尝试上传带有空格的不同语言的文件时,它会将文件上传为:“.jpg”,仅没有文件名,只有文件类型。或一些无法从网站上读取为链接 (src="") 的丑陋文本。起初我使用 windows(xampp),但后来我理解了 utf-8 问题,我买了一台 linux 服务器,情况有所好转,但仍然不是 100% 成功。
(顺便说一句,我知道数据库文件名存储和真实文件名作为唯一编号的选项,但我不确定它对我来说是最佳解决方案,因为它会减慢服务器从数据库中读取大量文件的速度。)
有人能指出我的错误吗?
索引.html:
<script>
$('#transFrame').load(function () {
alert("file uploaded");
...fix the file into the img src="..";
});
</script>
<form target="transFrame" enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="200000" /> Choose image to upload:
<input id = "imagefile" name="uploadedfile" type="file" onchange="submit();" /><br />
</form>
<iframe style="display:none;" name="transFrame" id="transFrame"></iframe>
上传.php:
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "success" . $_FILES['uploadedfile']['name'] ;
} else{
echo "failed" . $_FILES['uploadedfile']['name'] ;
}