[問題] 取得input file的內容

看板Ajax作者 (沉默傷心)時間15年前 (2010/11/29 20:48), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
各位好 我先描述一下我的問題 簡單來說我有一個form,裡面有各式各樣的input 但我submit時不是用browser預設的form.submit()方式 而是透過Ajax把form序列化後用post送出 大概長這樣 var j_form = $("#myform"); $.post("/xx/yy/zz/", j_form.serialize(), function(data){ ........ }); 在input中沒有file時這一切非常的美好,天下太平 即便在有file時,我用Firefox也可以做處理 方法很笨,不過堪用,就是Firefox input file DOM中的getAsText method 將client上傳的檔案內容讀入一個隱藏的input再送出,如下 var j_file = $("#myfile"); var j_input = $("<input type='hidden' name='myfile_s' />"); j_input.val(j_file.get(0).files[0].getAsText("utf-8")).appendTo(j_form); $.post(.....同上.....); 因為檔案內容都是文字,所以沒問題 但是Chrome和IE就不能用這招了,因為沒提供這個getAsText這個method 我想問的就是Chrome和IE有沒有類似Firefox這種method,可以取出檔案內容 看了一下Chrome好像只能取得file name跟file size 若無,有沒有人有更好的方法用Ajax的方式上傳檔案 希望一個form所有要送的input(包括type=file的)可以在同一個request中完成 以上 感謝你看完 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.15.87

11/30 00:57, , 1F
將#myform的tag設enctype="multipart/form-data" 試試
11/30 00:57, 1F

11/30 01:01, , 2F
ajax上傳檔案比較麻煩,或試試http://tinyurl.com/24lutg
11/30 01:01, 2F

12/01 17:17, , 3F
也可以試試把表單action設成要處理上傳的頁面
12/01 17:17, 3F

12/01 17:18, , 4F
然後把表單的target指到iframe,用一般submit的方式即可
12/01 17:18, 4F

12/01 19:32, , 5F
感謝樓上各位的建議,我再試試
12/01 19:32, 5F
文章代碼(AID): #1Cyw4pU4 (Ajax)
文章代碼(AID): #1Cyw4pU4 (Ajax)