0

ファイルのアップロードをパーソナライズしましたが、これはすべてのブラウザーでうまく機能しますが、クロムでテストすると、「c:\fakepath\」が追加されます。だから私はパスを置き換えるためにウェブ上のどこかを読んだので、今問題は、ファイルがサーバーにアップロードされず、パスが変更されたが、ファイルのアップロードに失敗したことです。

<script language="JavaScript" type="text/javascript">
function BrowseClick()
{
    var fileinput = document.getElementById("picture");
    fileinput.click();
}
function changebrowse()
{
var fileinput = document.getElementById("picture");
var textinput = document.getElementById("picture2");
textinput.value = fileinput.value.replace("C:\\fakepath\\", "");
}
</script>

<form method="POST" type="multipart/form-data">
<label for="test">test
<input type="text" id="picture2" readonly="true" value="myLabel"/>
<input type="button" value="myLabel" id="fakeBrowse" onclick="BrowseClick();"/>
<input name='picture' id="picture" type="file" accept="image/*" style="display: none" onChange="changebrowse();"/>
<input type="submit">
</form>

上記は私のコードですが、何か不足している可能性がありますか? 何か案は?

4

2 に答える 2

0

ファイルをアップロードする場合は、フォーム タグに少なくとも method 属性と type 属性が必要です。

<form method="POST" type="multipart/form-data">
于 2013-08-01T16:58:51.570 に答える
0

あなたが直面している問題は、一部のブラウザー (chrome など) には、Javascript がファイルのローカル フル パスを認識できないようにするセキュリティ機能があることです。これは、クライアントとして理にかなっています。サーバーにローカル マシンのファイル システムを認識させたくない場合。

簡単な解決策は、ファイル入力が入っているフォーム全体を投稿することです。

それが役に立てば幸い。

于 2013-08-01T16:59:47.400 に答える