我试图允许用户将他们的图片上传到网站并通过原始文件名显示它们。一切都按照计划进行,但是当我尝试上传一个使用空格的不同语言的文件时,它将文件上传为:“.jpg”,只有文件类型没有文件名。或者一些丑陋的文字,不能从网站上读作链接(src =“”)。 起初我使用的是windows(xampp),但后来我理解了utf-8的问题而且我买了一台linux服务器,事情变得更好但仍然没有100%的成功。
(顺便说一下,我知道数据库文件名存储和真实文件名的选项是一个唯一的数字,但我不确定它对我来说是最好的解决方案,因为它会减慢服务器从数据库中读取大量文件的速度。)
能否指出我的错误?
的index.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>
upload.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'] ;
}