مجرد إلقاء نظرة على الكود ، والتعليقات كلها في الداخل
بادئ ذي بدء ، web.xml
<؟ XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/Web-App_2_5 <Srevlet-Class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <Init-param> <param-name> contextConfigLocation </param-name> <param-value> classpath: applicationContext.xml </param-value> <inip-param> <Sradlet-mapping> <Servlet-Name> تحميل </servlet-name> <url-pattern>/</url-pattern> </revlet mapping> <filter> <lipter-class> org.springframework.web.filter.characterencodingfilter </filter-class> <Init-param> <param-name> الترميز </param-name> <param-value> utf-8 </parm-value> <Url-pattern>/*</url-pattern> </filter-mapping> </bil-app>
يوجد أدناه في //src//applicationcontext.xml
<؟ Xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: context = "http://www.springframework.org/schema/context XSI: Schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2 http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/context/spring-context-3.xsd http://www.springframework.org/schema/context/spring-context-3.2.xsd "> <!-ابدأ آلية المسح التلقائي للمكون في الربيع (ستقوم بمسح الفئات وحلقات فرعية محددة تلقائيًا- http://blog.csdn.net/jadyer/article/details/6038604-> <سياق: مكون-سسي باكاج = "com.jadyer"/> <!-وظيفة startmvc ، وظيفة التعليق التوضيحي ، سوف يسجل تلقائيًا الحالات ذات الصلة ، <!-بما أن springmvc يتم تعيينه في web.xml لاعتراض جميع الطلبات ، فلن يتم قراءتها عند قراءة ملفات الموارد الثابتة-> <!-من خلال هذا التكوين ، يمكنك تحديد جميع الموارد التي تطلب أو مرجع "/JS/**" وسيتم العثور عليها من "/js/"-> <mvc: الموارد mapping = "/js/" location = " mapping = "/expload/**" location = "/upload/"/> <!-عند تحميل الملفات بواسطة springMVC ، تحتاج إلى تكوين معالج multipartresolver-> <bean id = "multipartresolver"> <! الملفات-> <property name = "maxuploadsize" value = "800000"/> </bean> <!-عندما يتجاوز springmvc حد التحميل ، سوف يرمي org.springframework.web.multipart.maxuploadseizedexception- هذه المرة-> <bean id = "inspectedResolver"> <property name = "insperiveMappings"> <bors> <!-عند مواجهة استثناء maxuploadsizeExceedEdException ، فإنه سيقفز تلقائيًا إلى /web-inf/jsp/error_filepload.jsp-> <prop-> key = "org.springframework.web.multipart.maxuploadsizeExceedEdException"> error_fileUpload </prop> </props> </property> </bean> <bean> <property name = "prefix" value = "/web-inf/"/"
فيما يلي صفحة المطالبة عند تحميل محتوى الملف كبير جدًا //web-inf//jsp//error_fileupload.jsp
<٪@ page language = "java" pageencoding = "utf-8" ٪>
<h1> الملف كبير جدًا ، يرجى إعادة صياغة </h1>
فيما يلي صفحة التحميل لتحديد ملفات index.jsp
<٪@ page language = "java" pageencoding = "utf-8" ٪> <!-لا يمكن اختصار هذا كـ <script type = "text/javaScript" src = ".." .. src = "<٪ = request.getContextPath () ٪>/js/ajaxfileupload.js"> </script> <script type = "text/javaScript" src = "<٪ = requestContextPath () ٪>/js/ajaxfileud. ajaxfileupload () {// يتم عرض صورة عند تحميل ملف ، ويتم تحميل الملف لإخفاء الصورة // $ ("#loading"). ajaxStart . نوع البيانات: "النص" ، // يمكن أن يكون التنسيق الذي تم إرجاعه بواسطة الخادم JSON أو XML ، إلخ. سوف يضيف AjaxFileUpload لاحقة <pre> النص </pre> إلى محتوى النص الذي يستجيب إليه الخادم مرة أخرى. data = data.replace ("</pre>" ، '') ؛ data = data.replace ("<pre>" ، '') ؛ data = data.replace ("</pre>" ، '') ؛ data = data.replace ("</pre>" ، '') ؛ // في هذا المثال ، بعد اكتمال ملف التحميل ، سيعود الخادم إلى المقدمة [0`filePath] إذا (data.substring (0 ، 1) == 0) {// 0 يعني التحميل بنجاح (superhes مسار الملف بعد التحميل) ، 1 يعني الفشل (Superhes the Failure) $ ("IMG [idloadiMiM ']"). $ ('#result'). html ("تحميل الصورة بنجاح <br/>") ؛ } آخر {$ ('#result'). html ('فشل تحميل الصورة ، يرجى المحاولة مرة أخرى!!') ؛ }} ، خطأ: الدالة (البيانات ، الحالة ، e) {// وظيفة المعالجة $ ('#result'). html ('فشل تحميل الصورة ، يرجى المحاولة مرة أخرى !!') ؛ }}) ؛} </script> <div id = "result"> </viv> <img id = "uploadimage" src = "http://www.firefox.com.cn/favicon.ico"> <input type = "file" id = "myBlogimage" name = "myfiles"/> OnClick = "AjaxfileUpload ()"/> <!-مقدمة إلى موقع AjaxFileUpload الرسمي: http://phpletter.com/our-projects/ajaxfileupload/introduction: cquery plug-in ajaxfileuad can avevility floy oploading files ، وسهلة الاستخدام وسهلة الاستخدام. لديها الكثير من المستخدمين. تجدر الإشارة إلى ذلك: ترتيب إدخال JS (يعتمد على jQuery) ولا توجد نماذج في الصفحة (لا يؤدي إلا إلى تشغيل طريقة AjaxfileUpload () عند النقر فوق الزر) الأخطاء والحلول الشائعة هي كما يلي 1) بناء الجملة: مفقود ؛ قبل العبارة -تحقق مما إذا كان يمكن الوصول إلى مسار عنوان URL 2) SyntaxerRor: خطأ في بناء الجملة -تحقق مما إذا كان ملف JSP الذي يتولى عملية التقديم لديه خطأ في بناء الجملة 3) Syml: حدد ما إذا كان معرف الخصائص موجودًا أو لا يوجد ما إذا كان هناك خطأ فاكسة في حالة تصحيح: خطأ $ ، وهو أكثر ملاءمة بكثير من مطالبات الخطأ غير الصالحة أعلاه -> أخيرًا ، FileUploAdController.java الذي يتولى تحميل الملف
package com.jadyer.controller ؛ استيراد java.io.file ؛ استيراد java.io.ioException ؛ استيراد java.io.printwriter ؛ استيراد javax.servlet.http.httpletrequest ؛ javax.servlet.http.httpserverspons org.springframework.stereotype.controller ؛ استيراد org.springframework.web.bind.annotation.requestmapping ؛ استيراد org.springframework.web.bind.annotation.requestparam ؛ استيراد org.springframework.web.multfile ؛ 1) نظرًا لأن SpringMVC يستخدم تنفيذ المشاع filepload ، يجب عليه أولاً إدخال مكوناته في المشروع * 2) تكوين معالج multipartresolver في ملف تكوين springmvc (يمكن إضافة قيود السمة على مكونات الملفات) * enctype = "multipart/form-data" و <input type = "file" name = "****"/>)*ps: بما أن ajaxfileupload.js يستخدم هنا لتحقيق تحميل خالي من التحديث ، لا يتم استخدام النموذج في هذا المثال* ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- spring-context -3.2.4.release.jar * spring-core-33.2.4 Spring-Web-33.2.4.Release.jar * Spring-Web-33.2.4 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- بعد تحميل الملف ، ارجع إلى المقدمة [0`filepath] ، 0 يعني التحميل بنجاح (متسلسل إلى مسار الملف الذي تم تحميله) ، 1 يعني الفشل (متسلسل إلى وصف الفشل) */ @requestmapping (value = "/ fileUpload") السلسلة العامة ( @requestparam (uname "uname ، طلب httpservletrequest ، استجابة httpservletresponse) يلقي ioException {// يمكنك تلقي معلمات أخرى أثناء تحميل نظام الملفات. // إذا كنت تستخدم خادم TomCat ، فسيتم تحميل الملف على // ٪ tomcat_home ٪ // webapps // yourwebproject // upload // folder // يتم استخدام فئة commons.io.fileutils لتنفيذ عمليات تحميل الملف هنا. سيحدد تلقائيًا ما إذا كان /التحميل موجودًا. إذا لم يكن موجودًا ، فسيقوم تلقائيًا بإنشاء string realpath = request.getSession (). getServletContext (). getRealPath ("/topload") ؛ // قم بتعيين استجابة تنسيق البيانات إلى محتوى المقدمة. // قم بتعيين كائن printWriter الذي يستجيب للمحتوى الأمامي printWriter Out = response.getWriter () ؛ // الاسم الأصلي لملف التحميل (أي اسم الملف قبل التحميل) String OriginalFilename = null ؛ // إذا قمت فقط بتحميل ملف واحد ، فأنت بحاجة فقط إلى تلقي الملف في نوع multipartfile ، وليس هناك حاجة لتحديد صراحة التعليق التوضيحي REQUESTPARAM // إذا كنت تريد تحميل ملفات متعددة ، فأنت بحاجة إلى استخدام ملفات متعددة [] " MyFiles ، وإلا فإن myfiles في المعلمة لا يمكن الحصول على جميع الملفات التي تم تحميلها لـ (multipartfile myfile: myfiles) {if (myfile.isempty ()) {out.print ("1`please حدد الملف وتحميله") ؛ out.flush () ؛ العودة لاغية. } آخر {OriginalFilename = myfile.getoriginalfilename () ؛ System.out.println ("File Original Name:" + OriginalFilename) ؛ System.out.println ("اسم الملف:" + myfile.getName ()) ؛ System.out.println ("طول الملف:" + myfile.getSize ()) ؛ System.out.println ("نوع الملف:" + myfile.getContentType ()) ؛ System.out.println ("======================================================================================================================================== System.out.println ("============================================================================= =========================================================================================================================== =========================================================================================================================== =========================================================================================================================== {System.out.println (File [ + OriginalFilename + ". [D: /develop/apache-tomcat-6.0.36/webapps/ajaxfileupload//upload/anger birds.jpg] //system.out.println(realpath + " //system.out.println (request.getContextPath () + "/upload/" + OriginalFilename) ؛ // توصية [realPath + "//" + OriginalFilename] غير مستحسن // لأن <img src = "file: /// d: /aa.jpg"> يمكن عرضها بواسطة firefox تحت windows ، و <img src = "d: /aa.jpg"> firefox غير معرّف. OriginalFilename) ؛ out.flush () ؛ العودة لاغية. }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.