jQuery实现文件上传。

要实现下面这样一个js方法:file_upload(文件内容,URL){//用jQuery将文件内容传送至URL......}不用任何jQuery插件,请问如何实现上述功... 要实现下面这样一个js方法:
file_upload(文件内容,URL) {
// 用jQuery将文件内容传送至URL
......
}
不用任何jQuery插件,请问如何实现上述功能。
展开
 我来答
匿名用户
2015-08-01
展开全部
/* jQuery实现文件上传,参考例子如下:
package com.kinth.hddpt.file.action;  
  
import java.io.File;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.OutputStream;  
import java.util.ArrayList;  
import java.util.Calendar;  
import java.util.Enumeration;  
import java.util.Hashtable;  
import java.util.List;  
  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
import net.sf.json.JSONArray;  
  
import org.apache.commons.logging.Log;  
import org.apache.commons.logging.LogFactory;  
import org.apache.struts.action.ActionForm;  
import org.apache.struts.action.ActionForward;  
import org.apache.struts.action.ActionMapping;  
import org.apache.struts.upload.FormFile;  
import org.hibernate.criterion.MatchMode;  
import org.hibernate.criterion.Order;  
import org.hibernate.criterion.Restrictions;  
  
import com.gdcn.bpaf.common.base.search.MyCriteria;  
import com.gdcn.bpaf.common.base.search.MyCriteriaFactory;  
import com.gdcn.bpaf.common.base.service.BaseService;  
import com.gdcn.bpaf.common.helper.PagerList;  
import com.gdcn.bpaf.common.helper.WebHelper;  
import com.gdcn.bpaf.common.taglib.SplitPage;  
import com.gdcn.bpaf.security.model.LogonVO;  
import com.gdcn.components.appauth.common.helper.DictionaryHelper;  
import com.kinth.common.base.action.BaseAction;  
import com.kinth.hddpt.file.action.form.FileCatalogForm;  
import com.kinth.hddpt.file.model.FileCatalog;  
import com.kinth.hddpt.file.service.FileCatalogService;  
import com.kinth.hddpt.file.util.MyZTreeNode;  
  
/** 
 * <p> 
 * description: “文件上传的Struts层请求处理类” 
 * </p> 
 * @date : 2013-1-14 
 */  
public class FileCatalogAction extends BaseAction<FileCatalog> {  
    @SuppressWarnings("unused")  
    private static Log log = LogFactory.getLog(FileCatalogAction.class); // 日志记录  
    private FileCatalogService fileCatalogService;  
      
    // 删除记录的同时删除相应文件  
    public ActionForward fileDelete(ActionMapping mapping, ActionForm form,  
            HttpServletRequest request, HttpServletResponse response)  
            throws Exception {  
        String[] id = request.getParameterValues("resourceId");  
  
        if (id != null && id[0].contains(",")) {  
            id = id[0].split(",");  
        }  
        String[] fileUrls = new String[id.length];  
        for (int j = 0; j < id.length; j++) {  
            fileUrls[j] = fileCatalogService.findObject(id[j]).getFileUrl();  
            if (!isEmpty(fileUrls[j])) {  
                // 如果该文件夹不存在则创建一个uptext文件夹  
                File fileup = new File(fileUrls[j]);  
                if (fileup.exists() || fileup != null) {  
                    fileup.delete();  
                }  
            }  
  
            fileCatalogService.deleteObject(id[j]);  
        }  
        setAllActionInfos(request);  
        return list(mapping, form, request, response);  
    }  
      
  
    @Override  
    public ActionForward save(ActionMapping mapping, ActionForm form,  
            HttpServletRequest request, HttpServletResponse response)  
            throws Exception {  
        String id = request.getParameter("resourceId");   
        Boolean fileFlag = Boolean.valueOf(request.getParameter("fileFlag"));  
          
        if(fileFlag != null && fileFlag == true){  
            return super.save(mapping, form, request, response);  
        }else{  
            String fileUrl = this.fileUpload(form, request, id, fileFlag);  
            response.setContentType("text/html");  
            response.setCharacterEncoding("GBK");  
            response.setHeader("Charset", "GBK");  
            response.setHeader("Cache-Control", "no-cache");  
            response.getWriter().write(fileUrl);  
            response.getWriter().flush();  
        }  
        return null;  
    }  
  
    @SuppressWarnings("unchecked")  
    public String fileUpload(ActionForm form,HttpServletRequest request,String id,Boolean fileFlag) throws FileNotFoundException, IOException{  
          
        request.setCharacterEncoding("GBK");  
          
        String basePath = getServlet().getServletConfig().getServletContext().getRealPath("")+"/";  
        String filePath = "uploads/"; // 获取项目根路径    ;  
          
        /*注释部分对应jquery upload uploadify插件的后台代码,只是还存在编码问题,默认为utf-8 
        String savePath = getServlet().getServletConfig().getServletContext().getRealPath(""); // 获取项目根路径 
        savePath = savePath + "\\uploads\\"; 
        //读取上传来的文件信息 
        Hashtable<String, FormFile> fileHashtable = form.getMultipartRequestHandler().getFileElements(); 
        Enumeration<String> enumeration = fileHashtable.keys(); 
        enumeration.hasMoreElements(); 
        String key = (String) enumeration.nextElement(); 
         
        FormFile formFile = (FormFile)fileHashtable.get(key); 
         
        String filename = formFile.getFileName().trim(); //文件名 
        filename = new EncodeChange().changeCode(filename); 
        String filetype = filename.substring(filename.lastIndexOf(".") + 1);//文件类型 
        savePath = savePath+filetype+"\\"; 
        System.out.println("path:"+savePath); 
        String realPath = savePath +  filename; //真实文件路径 
         
        //如果该文件夹不存在则创建一个文件夹 
        File fileup = new File(savePath); 
        if(!fileup.exists()||fileup==null){ 
            fileup.mkdirs(); 
        } 
        if (!filename.equals("")) { 
            // 在这里上传文件 
          InputStream is = formFile.getInputStream(); 
          OutputStream os = new FileOutputStream(realPath); 
            int bytesRead = 0; 
            byte[] buffer = new byte[8192]; 
            while ((bytesRead = is.read(buffer, 0, 8192)) != -1) { 
                os.write(buffer, 0, bytesRead); 
            } 
            os.close(); 
            is.close(); 
            //如果是修改操作,则删除原来的文件 
            String id = request.getParameter("resourceId"); 
            if (!isEmpty(id)) { 
              FileCatalog fileCatalog = fileCatalogService.findObject(id); 
              String fileUrl = fileCatalog.getFileUrl(); 
              if (!isEmpty(fileUrl)) { 
                File filedel = new File(fileUrl); 
                if(filedel.exists()||filedel!=null){ 
                  filedel.delete(); 
                } 
              } 
               
              request.setAttribute("entity", fileCatalog); 
           } 
            
        response.getWriter().print(realPath);// 向页面端返回结果信息 
        }*/  
         
        // 读取上传来的文件信息  
        Hashtable<String, FormFile> fileHashtable = form.getMultipartRequestHandler().getFileElements();  
        Enumeration<String> enumeration = fileHashtable.keys();  
        enumeration.hasMoreElements();  
        String key = (String) enumeration.nextElement();  
  
        FormFile formFile = (FormFile) fileHashtable.get(key);  
  
        String filename = formFile.getFileName().trim(); // 文件名  
        String filetype = filename.substring(filename.lastIndexOf(".") + 1);// 文件类型       
        Integer fileSize = formFile.getFileSize();  
          
      
        filePath += Calendar.getInstance().get(Calendar.YEAR)+"/"+filetype+"/" ;  
        String realPath = basePath+filePath+filename;  // 真实文件路径  
          
        if (!filename.equals("")) {  
            // 如果是修改操作,则删除原来的文件  
            if (!isEmpty(id)) {  
                FileCatalog fileCatalog = fileCatalogService.findObject(id);  
                String fileUrl = fileCatalog.getFileUrl();  
                if (!isEmpty(fileUrl)) {  
                    fileUrl = basePath + fileUrl;  
                    File filedel = new File(fileUrl);  
                    if (filedel.exists() || filedel != null) {  
                        filedel.delete();  
                    }  
                }  
                request.setAttribute("entity", fileCatalog);  
            }  
            // 如果该文件夹不存在则创建一个文件夹  
            File fileup = new File(basePath+filePath);  
            if (!fileup.exists() || fileup == null) {  
                fileup.mkdirs();  
            }  
            // 在这里上传文件  
            InputStream is = formFile.getInputStream();  
            OutputStream os = new FileOutputStream(realPath);  
            int bytesRead = 0;  
            byte[] buffer = new byte[8192];  
            while ((bytesRead = is.read(buffer, 0, 8192)) != -1) {  
                os.write(buffer, 0, bytesRead);  
            }  
            os.close();  
            is.close();  
        }  
        filePath += filename;  
        String result = "{\"fileName\":\""+filename+"\",\"fileType\":\""+filetype+"\",\"fileSize\":"+fileSize+",\"fileUrl\":\""+filePath+"\"}";           
        return result;  
          
    }  
  
    public FileCatalogService getFileCatalogService() {  
        return fileCatalogService;  
    }  
  
    public void setFileCatalogService(FileCatalogService fileCatalogService) {  
        this.fileCatalogService = fileCatalogService;  
    }  
      
}
单身Mvp
2014-01-08 · TA获得超过245个赞
知道小有建树答主
回答量:240
采纳率:100%
帮助的人:151万
展开全部
建议使用jquery上传插件,自己写的话比较痛苦。推荐你可以去下载插件:http://www.cnblogs.com/lhb25/p/form-enhanced-with-javascript-five.html
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
okrup
2014-01-07
知道答主
回答量:16
采纳率:0%
帮助的人:11.1万
展开全部
file_upload(文件内容,URL) {
//使用iframe提交
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
有香菜么0Hwace
2014-01-07 · 超过45用户采纳过TA的回答
知道答主
回答量:220
采纳率:0%
帮助的人:100万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式