Saya selalu mengunggah file menggunakan formulir formulir untuk mengunggah file. Saya juga melihat orang mengunggah file menggunakan JS, tetapi tampaknya cukup sederhana, jadi saya tidak terlalu memperhatikannya. Hari ini saya tiba -tiba ingin menggunakan metode ini untuk mengunggah file, dan saya mengalami beberapa masalah selama periode ini. Karena itu, itu direkam sehingga Anda dapat memeriksanya jika Anda mengalami masalah seperti itu di masa depan.
Hal pertama adalah memperkenalkan file JS dan Ajaxfileupload, yang tidak perlu dikatakan banyak.
Lalu ada Ajax yang meminta alamat latar belakang. Kodenya adalah sebagai berikut:
<div> <input type="file" id="upload" name="upload" style="font-size: 0;opacity: 0;width: 100%;height: 100%;position: absolute;left: 0;top: 0;"/> <span>Select file</span> </div> $("#upload").on("change",function(){ $.ajaxFileUpload({ url : '/Tes/User/ImPupload', // Jenis Alamat Permintaan Backend: 'Posting', // Metode Permintaan Ketika Anda ingin mengirimkan parameter khusus, parameter ini harus diatur untuk memposting Secureuri: False, // Apakah akan mengaktifkan SecureUrI, DATA -AFFACE, "ID DATA: 'Json', Tipe Data yang dikembalikan oleh server dapat berupa XML, JSON, HTML. }, Fungsi: JSON, Status, E) {// Fungsi pemrosesan secara otomatis dieksekusi setelah pengiriman gagal.Ketika kode front-end selesai, kode latar belakang akan dikembangkan.
Paket com.roc.test; impor java.io.file; impor java.util.list; import javax.servlet.http.httpservletrequest; impor javax.servlet.http.httpservletRespons; javax.ws.rs.produces; import javax.ws.rs.queryparam; impor javax.ws.rs.core.context; impor javax.ws.rs.core.mediatype; import net.sf.json.jsonObject; import org.apache.commons.fileupload.fileitem; org.apache.commons.fileupload.disk.diskFileItemFactory; import org.apache.commons.fileupload.servlet.servletfileupload; import org.jboss.resteasy.annotations.providers.jaxb.json.badgerfish; net.sf.json.jsonObject;/** * Unggah file * @author liaowp * */ @controller @path ("/user") unggah kelas publik {@path ("/imPuPlead") @post @produces ("appliciP/json; charset = utf-8") @consumes ("applicip/json; charset = utf-8") @consumes ("applicip/json; charset = UTF-8") @consumes ("mediP/json; charset = UTF-8") @consumes ("mediPan) @consumes (" json; Unggahan jsonObject (@QueryParam ("orderId") String orderId,@context httpservletRequest permintaan,@konteks httpservletResponse respons) {jsonObject jsonobj = new jsonObject (); String file_path = request.getSession (). GetserVletContext (). GetRealPath ("/")+file.separator+"corpfile"+file.separator; // File Path Path Storage String unggah_file_path = ""; File file = file baru (file_path); if (! File.exists () &&! File.isDirectory ()) {// Jika folder tidak ada, buat file.mkdir (); unggah_file_path = file_path; } else {unggah_file_path = file_path; } DiskFileItemFactory factory = DiskFileItemFactory baru (); // Atur pabrik pabrik. unggah.setheaderencoding ("UTF-8"); // Ini adalah kode untuk memproses nama file Cina. Bahkan, hanya ada satu baris filen nama = ""; Daftar <FILEITEM> DAFTAR; JsonObject jsonobj = jsonobject () baru; coba {list = unggah.parsequest (permintaan); untuk (fileItem item: list) {if (item.isFormField ()) {string name = item.getFieldName (); String value = item.getString ("UTF-8"); } else {string name = item.getFieldName (); Nilai string = item.getName (); fileName = name + ".jpg"; if (item.getSize ()> 10485760) {// halo, file unggah harus kurang dari 10m! jsonobj.put ("retcode", "100"); jsonobj.put ("retmsg", "halo, mengunggah file harus kurang dari 10m!"):} else {// Unggah berhasil item.write (file baru (unggah_file_path, fileName)); System.out.println (file.separator + "corpfile" + file.separator + fileName); jsonobj.put ("retcode", "0"); jsonobj.put ("retmsg", "halo, berhasil unggah!"); }}}}} catch (Exception e) {// Unggah Gagal E.PrintStackTrace (); jsonobj.put ("retcode", "9999"); jsonobj.put ("retmsg", "halo, unggahan file gagal,"); } return jsonobj; }}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.