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的easyui-filebox支持多文件上传吗?
1.easyui实现上传文件,显示图片操作,还有jq双击放大图片操作