2012-08-29 69 views
0

我的網站要求用戶上傳指定格式的xml文件。 所以我想在客戶端做一個語法和格式檢查,並幫助他們在上傳到服務器之前修復這些錯誤。 (我不要求更改硬盤上的真正的本地文件,只需要更改數據發送到服務器) 我目前使用的:是否可以使用javascript更改html <input>文件的內容?

var reader = new FileReader(); 
reader.onload = function(e) { 
    var xml = e.target.result; 
    // I help them correct xml here, this will involve lots of interaction with user, 
    // so I want it only happen on client side 
    var correctXML = fixSyntaxAndFormat(xml); 
    $.post('/foo/bar', {xml: correctXML}); 
} 
reader.readAsText(evt.target.files[0]); 

此代碼的工作,但它在後的數據發送XML,而不是一個真正的上傳的文件。 因爲我想監視文件上傳進度和保存等文件的相關信息,所以我希望能有這樣的:oldfile.content = correctXML 然後我可以只提交該表格包含我<input type="file"/>。 這可能嗎?還是有一個「正確」的方式來做到這一點?

感謝

更新 感謝austincheney的榜樣,我結束了創建new Blob()和使用替換原文件。似乎工作正常。

回答

0

是的,這完全是可能的,它通常用於協助拖放文件操作。例如,如果您希望用戶能夠將文件拖放到textarea上,則可以使textarea成爲拖放區域,將文件的路徑無提示地輸入到輸入類型文件元素。我在我自己的網站上這樣做。

結帳功能pd.file和pd.filedrop在http://prettydiff.com/pd.jshttp://prettydiff.com/

演示我的工具結果
相關問題