easyui实现文件上传

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了easyui实现文件上传相关的知识,希望对你有一定的参考价值。

前台用的<input type=file > ,
js代码
function uploadPdf2()
//判断是否有选择上传文件
var imgPath4 = $$("#uploadFile4").val();
if (imgPath4 == "")
alert("请选择上传文件!");
return;

//判断上传文件的后缀名
var strExtension = imgPath4.substr(imgPath4.lastIndexOf('.') + 1);
if (strExtension != 'pdf')
alert("请选择pdf文档文件");
return;

$$.ajax(
type: "POST",
url: "/ashx/ZongHengHandler.ashx?type=upP",
data: imgPath4: $$("#uploadFile4").val() ,
cache: false,
success: function(data)
alert("上传成功");
,
error: function(XMLHttpRequest, textStatus, errorThrown)
alert("上传失败,请检查网络后重试");

);

ashx后台如何获取保存

   //前台需要参数指定调用一般处理程序里哪个方法         
            public string UploadFile()
            
                string result="上传成功";
                try
                    //接收上传后的文件
                    HttpPostedFile file = Context.Request.Files["imgPath4"];
        
                    //获取文件的保存路径
                    string uploadPath = HttpContext.Current.Server.MapPath("~/_data/Files");
                    string fileEx = Path.GetExtension(file.FileName);//文件的格式
                    string dtStr = file.FileName.Replace(fileEx, "_") + DateTime.Now.ToString("yyyyMMddhhmmss");
                    //判断上传的文件是否为空
                    if (file != null)
                    
                        if (!Directory.Exists(uploadPath))
                        
                            Directory.CreateDirectory(uploadPath);
                        
                        //保存文件
                        file.SaveAs(HttpContext.Current.Server.MapPath("~/_data/Files/" + dtStr + fileEx));
                        filePath = HttpContext.Current.Server.MapPath("~/_data/Files/" + dtStr + fileEx);
                    
                
                catch (Exception ex)
                
                    result="上传失败";
                          
                return result;
            

追问

HttpPostedFile file = Context.Request.Files["imgPath4"];得到的为空值,提示未将对象引用设置到对象的实例

追答

把你ajax url输出浏览器控制台 看看具体url是什么

追问

url过去也正确,后台中执行到string fileEx = Path.GetExtension(file.FileName);//文件的格式这里就报错,断点出来file为null

参考技术A 这根EASYUI有什么关系。这要看你后台如何写。。追问

嗯,题目没改,直接发的问题,用的楼上的方法,但是获取不到值,保存不了

追答

java吗?不知道啊

easyui filebox 文件上传

@RequestMapping(value = "saveFileupload")
@ResponseBody
public String saveFileupload(HttpServletRequest request,String menutree,HttpServletResponse response){
String fileName="";
String docType="";
//创建一个通用的多部分解析器
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//判断 request 是否有文件上传,即多部分请求
if(multipartResolver.isMultipart(request)){
//转换成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
//取得request中的所有文件名
Iterator<String> iter = multiRequest.getFileNames();

while(iter.hasNext()){
//取得上传文件
MultipartFile file = multiRequest.getFile(iter.next());
if(file != null){
//取得当前上传文件的文件名称
String priNames = file.getOriginalFilename();
String priName=priNames.substring(0,priNames.indexOf("."));
if(!"".equals(priName)){
//重命名上传后的文件名

excelFile = new File(filePath+""+priNames);
docType = priNames.substring((priNames.lastIndexOf(".")));
fileUploadService.savefile(priName, filePath, docType, menutree);
try {
file.transferTo(excelFile);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}



return JsonMapper.getInstance().toJson("操作成功");
}

/*
* 文件下载
*/
@RequestMapping(value = "downFile")
@ResponseBody
public void downFile(String id,HttpServletRequest request,HttpServletResponse response){

List<Map<String,Object>> list=fileUploadService.downFile(id);
String filetype=String.valueOf(list.get(0).get("filetype"));
try{

//File file = new File(Constant.OPLOAD_PAHT,fileName);
// 读到流中
InputStream inStream = new FileInputStream(list.get(0).get("filecontent")+""+list.get(0).get("filename")+""+""+filetype+"");// 文件的存放路径
// 设置输出的格式
response.reset();
response.setContentType("bin");
response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(list.get(0).get("filename")+filetype,"UTF-8"));
// 循环取出流中的数据
byte[] b = new byte[1000];
int len;

while ((len = inStream.read(b)) > 0)
response.getOutputStream().write(b, 0, len);
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}

 

以上是关于easyui实现文件上传的主要内容,如果未能解决你的问题,请参考以下文章

在EasyUI项目中使用FileBox控件实现文件上传处理

easyUI前端ajax上传文件组件

Easyui的easyui-filebox支持多文件上传吗?

1.easyui实现上传文件,显示图片操作,还有jq双击放大图片操作

Easyui的easyui-filebox有人知道是不是支持 多文件上传吗?

easyUI利用ajax上传文件后台