ユーザーが自分の写真をウェブサイトにアップロードして、元のファイル名で表示できるようにしようとしています。英語ではすべてが計画どおりに進みますが、スペースを含む別の言語のファイルをアップロードしようとすると、ファイルは ".jpg" としてアップロードされます。ファイル名はなく、ファイルタイプだけです。または、Web サイトからのリンク (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>
アップロード.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'] ;
}