[英]How to send only file name instead of file path in post request
我正在使用IE9和jquery1.8。 我正在使用ajaxForm發出POST請求。 該表格僅包含一個文件輸入字段。 它發送POST請求,如下所示,
-----------------------------7dd2d50120f76
Content-Disposition: form-data; name="myFile"; filename="C:\Images\myfile.jpg"
Content-Type: text/plain
與日志中一樣,文件名包含文件路徑。 我試圖只傳遞文件名而不傳遞路徑。 有什么辦法可以實現?
編輯:我檢查了IE 8,它只發送文件名而不是文件路徑。 此文件路徑破壞了僅要求文件名的服務器代碼。 想知道應該有一些屬性還是需要設置某些屬性,或者IE9對此有一些更改。
謝謝,JDP
在IE中,如果站點不在受信任的區域中,則這是一項安全功能。 在其他瀏覽器中,如果絕對必須在客戶端上執行此操作(我仍然認為解析服務器上的名稱是更好的選擇)-您必須將“僅名稱”保存到單獨的隱藏字段中,然后在服務器上讀取該字段:
<form onsubmit = "getFileName()">
<input type="file" id="fu"/>
<input type="hidden" id="hdFileName" />
<input type="submit" />
</form>
<script>
function getFileName() {
var hid = document.getElementById("hdFileName");
var fullName = document.getElementById("fu").value;
var sep = fullName.lastIndexOf("\\");
if (sep == -1)
hid.value = fullName;
else
hid.value = fullName.substring(sep + 1, fullName.length);
// Testing
alert(hid.value);
}
</script>
此代碼在表單提交時觸發,並檢查文件名是否包含“ \\”字符。 如果是的話,它將僅讀取文件名的一部分(如果不是,則僅讀取文件名),並將其存儲到隱藏變量中。
演示: http : //jsfiddle.net/wKvGP/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.