Heim >Web-Frontend >js-Tutorial >Struts2+jquery.form.js-Methode zum Implementieren von Bild- und Datei-Upload_jquery

Struts2+jquery.form.js-Methode zum Implementieren von Bild- und Datei-Upload_jquery

WBOY
WBOYOriginal
2016-05-16 15:02:101900Durchsuche

Das Beispiel in diesem Artikel beschreibt die Methode zum Hochladen von Bildern und Dateien mit Struts2+jquery.form.js. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

jquery.form.js ist ein offizielles jQuery-Plug-in, das den asynchronen Datei-Upload unterstützt. Offizielle Website: http://plugins.jquery.com/form/

Kombiniert mit Struts2 zum einfachen Hochladen von Dateien in drei Schritten

Im Allgemeinen kann es auf einer Seite mehr als ein Formular geben, daher wirkt sich die Übermittlung eines Formulars auf einer Seite auf ein anderes Formular aus. Aus diesem Grund kann das Bild-Upload-Formular mit der asynchronen Übermittlungsmethode ohne Aktualisierung hochgeladen werden Hochladen. Zu diesem Zeitpunkt ist jquery .from.js praktisch.

1. HTML

Importieren Sie dieses jS auf die Seite und schreiben Sie das Upload-Formular

<script type="text/javascript" src="/js/jquery.form.js"></script>
<!—图片上传 -->
<s:form id="picForm" name="picForm" action="/notice/showAddNotice.action" method="post" 
  enctype="multipart/form-data">
    <input type="file" name="pic" size="30"/><input type="submit" value="上传"/>
</s:form>

2. JS

// 为表单绑定异步上传的事件
$(function(){
    // 为表单绑定异步上传的事件
    $("#picForm").ajaxForm({
    url : "${pageContext.request.contextPath}/notice/uploadPic.action", // 请求的url
    type : "post", // 请求方式
    dataType : "text", // 响应的数据类型
    async :true, // 异步
    success : function(imageUrl){
        //alert(imageUrl);
    },
    error : function(){
        alert("数据加载失败!");
    }
});
// 为提交按钮绑定事件
$("#saveBtn").click(function(){
    // 表单输入较验
    var title = $("#title");
    // 获取textarea的内容
    var content = tinyMCE.get('content').getContent();
    var msg = "";
    if ($.trim(title.val()) == ""){
        msg = "公告标题不能为空!";
        title.focus();
    }else if ($.trim(content) == ""){
        msg = "内容不能为空!";
    }
    msg = "";
    if (msg != ""){
        alert(msg);
    }else{
        // 表单提交
        $("#noticeForm").submit();
    }
});

3. Struts2Action

public class uploadPicAjax extends AbstractAjaxAction {
    private static final long serialVersionUID = -4742151106080093662L;
    /** Struts2文件上传的三个属性 */
    private File pic;
    private String picFileName;
    private String picContentType;
    @Override
    protected String getJson() throws Exception {
        //获取项目部署的路径
        String realPath = ServletActionContext.getServletContext()
                .getRealPath("/images/notice");
        //生成新的文件名
        String newFileName = UUID.randomUUID().toString()+"."
                +FilenameUtils.getExtension(picFileName);// 获取文件的后缀名 aa.jpg --> jpg
        FileUtils.copyFile(pic, new File(realPath + File.separator + newFileName));
        return "/images/notice/" + newFileName;
    }
    /** setter and getter method **/
    ......
}

4. Konfigurieren Sie Struts2.xml

<!-- 图片的异步上传 -->
<action name="uploadPic" class="com.wise.hrm.action.notice.uploadPicAjax">
</action>

Okay, ich bin mit dem Schreiben von der Seite bis zum Backend fertig. Dann können Sie es hochladen. vollständig!

Leser, die an weiteren jQuery-bezogenen Inhalten interessiert sind, können sich die speziellen Themen auf dieser Website ansehen: „Zusammenfassung der JQuery-Umschalteffekte und -Techniken“, „Zusammenfassung der jQuery-Drag-Effekte und -Techniken ", "Zusammenfassung der Fähigkeiten der JQuery-Erweiterung", "Zusammenfassung allgemeiner klassischer Spezialeffekte von jQuery", "Zusammenfassung der Verwendung von jQuery-Animationen und Spezialeffekten", " Zusammenfassung der Verwendung des jQuery-Selektors “ und „Zusammenfassung der allgemeinen jQuery-Plug-ins und Verwendung

Ich hoffe, dass dieser Artikel allen in der jQuery-Programmierung hilfreich sein wird.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn