AjaxFileUpload實現文件異步上傳

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/header.jsp"%>
<!DOCTYPE html>
<html>
    <head>
    <script src="/jscript/jquery-1.4.2.min.js" type="text/javascript"></script>
    <script src="/jscript/ajaxfileupload.js" type="text/javascript"></script>
    
        <title>新增</title>

    </head>
    <body>
        <style type="text/css">
.addcss {
    font-size: 18px;
    font-family: '微軟雅黑';
    margin-left: 10px;
    margin-top: 20px;
    width: 95%;
}

.addcss tr {
    line-height: 35px;
}

.addcss tr td {
    border: 1px solid #F2F2F2;
    text-align: center;
}

.addcss tr td input {
    line-height: 30px;
    border: 1px solid #ccc;
    width: 200px;
    height: 30px;
}

.addcss tr td select {
    line-height: 30px;
    border: 1px solid #ccc;
    width: 200px;
    height: 30px;
}
</style>
        <form class="ad_form" id="ad_form" action="/ad!saveImg" method="post" enctype="multipart/form-data">
            <table class="addcss">
                <tr>
                    <td>
                        廣告名稱
                    </td>
                    <td>
                        <input class="easyui-validatebox" type="text" name="advertisementName" />
                        <font color="red"> *</font>
                    </td>
                </tr>
                <tr>
                    <td>
                        選擇圖片
                    </td>
                    <td>
                        <input class="easyui-validatebox" type="file" name="img" id = "img"/>
                        <font color="red"> *</font>
                    </td>

                </tr>
            </table>
            <h2 align="center">
                <input type="button" value="提交" />
                <span id="error" style="color:red;padding-left: 20px;"></span>
            </h2>
            
        </form>



    <script type="text/javascript">
        function submit_form(){
            var advertisementName = $("input[name='advertisementName']").val();
            var img = $("input[name='img']");
            if(advertisementName == "") {
                $("#error").html("請輸入廣告名稱");
                return;
            }
            if(img.value == ""){
                $("#error").html("請選擇廣告圖片");
                return;
             }
             
            //alert(img.val());
            /*$.ajax({
                  type: "post",
                  url : "/ad!saveImg",
                  dataType: "json",
                  data:$("#ad_form").serialize(),
                   success: function(json){    
                    if(json.succeed){
                     
                    }
                }
                });*/
        //$(".ad_form").submit();

        /* $("#ad_form").form('submit', {
            url:"/ad!saveImg",
            success: function(data){
                }
        });*/


        $.ajaxFileUpload({
                url: '/ad!saveImg', //用於文件上傳的服務器端請求地址
                secureuri: false, //是否需要安全協議,一般設置爲false
                fileElementId: 'img', //文件上傳域的ID
                dataType: 'json', //返回值類型 一般設置爲json
                success: function (data){  //服務器成功響應處理函數
                   /* $("#img1").attr("src", data.imgurl);
                    if (typeof (data.error) != 'undefined') {
                        if (data.error != '') {
                            alert(data.error);
                        } else {
                            alert(data.msg);
                        }
                    }*/
                }
            });
        }
    </script>
    </body>
</html>







/**      
 * 版本信息:V1.0    
 * 日期:2015-6-1       
 *    
 */
package com.fhsy.action.advertisement;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import javax.annotation.Resource;

import org.apache.struts2.ServletActionContext;

import com.fhsy.action.BaseAction;

/**    
 *     
 * 創建人:dongsilin    
 * 創建時間:2015-6-1 上午09:47:55    
 * @version     
 *     
 */

@SuppressWarnings("all")
public class advertisementAction extends BaseAction{
   
    //廣告圖片文件
   private File img;
   //廣告圖片名稱
   private String imgFileName;
   
   
   /**
    * 保存廣告圖片
 * @return
    */
   public String saveImg(){
       
       //檢查圖片的大小
       if(isImg(img, imgFileName, 1024*5, 0, 0)==false){
           super.ajaxJson(jsonShowInfo(false, "廣告圖片異常,請傳5M以內的圖片"));
           return "saveImg";
       }
       String ramdomFileName=super.getRamdomFileName(imgFileName);//獲取隨機圖片名稱
       //保存圖片到指定文件夾
       boolean check=super.uploadFile(img, imgFileName, "/advertisementsImg",ramdomFileName);
       json(true, "廣告發布成功");
       return "saveImg";
        
    }

    public File getImg() {
        return img;
    }
    
    public void setImg(File img) {
        this.img = img;
    }
    
    public String getImgFileName() {
        return imgFileName;
    }
    
    public void setImgFileName(String imgFileName) {
        this.imgFileName = imgFileName;
    }
   
   
}

    /**
     * 圖片上傳
     * @param file
     * @param name
     * @param url
     * @return
     * @throws Exception
     */
    public boolean uploadFile(File file, String name, String url,String rname) {
            if (file != null) {
            try {
                InputStream in = new FileInputStream(file);
                Long size=Long.parseLong(in.available()+"");
                String img=(name.substring(name.lastIndexOf(".")+1,name.length())).toLowerCase();
                if((img.equals("gif")||img.equals("png")||img.equals("jpg")||img.equals("jpeg"))&&size<5000000){
                 String dir = ServletActionContext.getRequest().getRealPath(url);
                  
                  File uploadFile = new File(dir, rname);
                  OutputStream out = new FileOutputStream(uploadFile);
                  byte[] buffer = new byte[1024 * 1024];
                  int lenght;
                    while ((lenght = in.read(buffer)) > 0) {
                      out.write(buffer, 0, lenght);
                    }
                    in.close();
                    out.close();
                 }
            } catch (Exception e) {
                 throw new RuntimeException(e);
            }
        }
        return true;
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章