私はあなたの助けが必要です。これまでのところ、ファイルフィールドを追加してファイルを追加するときに警告が表示されます。しかし、前のフィールドを変更したいときは、最後の値を表示します。私は別のIDを使用してみました:しかし、私は立ち往生しています。アップロードファイルフィールドのファイル名をjavascriptで表示する
showSrc()でファイル名を表示する方法もここにありますか?
upload.html
<form id="uploadForm" action="{% url fileman.views.upload %}" method="post" enctype="multipart/form-data">{% csrf_token %}
<p><input type="file" name="ufile1" id="myfile1" onChange="javascript:showSrc();" size="20"><a href="#" id="myframe1"></a></p>
<p id="addFileFild"><a href="#" id="myframe" onclick="return addFileFild();"><img src="{{ fileman_media_url }}/plus_icon.png"WIDTH=25 HEIGHT=25></a></p>
script.js
function addFileFild(){
ufile = ufile+1;
myfile = myfile+1;
myframe = myframe+1;
$("#addFileFild").before('<p><input type="file" name="ufile'+ufile+'" id="myfile' +myfile+'" onChange="javascript:showSrc();" size="20"><a href="#" id="myframe' +myframe+'"></a></p>');
return 0;
}
function showSrc() {
document.getElementById("myframe"+myframe).href = document.getElementById("myfile" +myfile).value;
var theexa=document.getElementById("myframe"+myframe).href.replace("file:///","");
alert(document.getElementById("myframe"+myframe).href.replace("file:///",""));
}
私は正しいフィールド値を毎回取得しなければならないところです。ここで
document.getElementById("myfile" +myfile).value;
は溶液でDr.MolleのchromeとIE8 +に対するC:/ fakepathの削除が追加されました。
function showSrc(obj) {
//obj.nextSibling.href = obj.value;
// this is for Chrome and IE8+ excluding C:/fakepath/...
var filename = obj.value.replace(/^.*\\/, '')
//Write filename to page.
obj.parentNode.replaceChild(document.createElement('span'),obj.parentNode.lastChild);
obj.parentNode.lastChild.appendChild(document.createTextNode(filename));
}
ファイル入力要素は、ユーザーファイルと直接対話するため、**強く**保護されています。私はその道を得ることを許されていることを非常に疑う。 – TJHeuvel
いいえ、目的のパスを取得しますが、十分なファイル名で取得します。私は現時点でどのファイルフィールドをチェックしてshowScr()でそれを表示できるか知る必要があります。私が手動で行う場合、私はそれを行うことができます、私はmyfile = "myfile2"を設定すると、私は2番目のファイルフィールドを変更することができ、それが正しく表示されます。 – leffe