空指针异常! 上传文件不是这样的, 文件名和文件都在请求体中, 一定要用POST 还要l加一个属性 enctype="multipart/form-data", 进去了才解析请求体才能得到的
你写 <file name="filename" /> 你在服务端 requestgetParameter("filename"); 是得不到的
因为这些数据和 上传的文件流都封装在请求体中, 要解析的
你如果只要文件名: 可以这样
<file name="file" />
<hidden type="text" name="filename" />
用JS/或者JQUERY在提交时赋值才行
数据库不能保存图像,但是能保存图像名,我给你个思路,用户上传后使用uid方法将重命名,然后将新的名称存在数据库,保存在一个已知路径,然后页面加载只需要将src设置成"路径/数据库查询结果。(建议通过id查询)"
用jspSmartUpload组件来实现,用jsp+servlet在Servlet里实现的代码:
PrintWriter out = responsegetWriter();
int count = 0;
// 实例化上传控件对象
SmartUpload su = new SmartUpload();
// 初始化 *** 作
suinitialize(config, request, response);
// 设置上传文件最大字节数
susetTotalMaxFileSize(100000);
//
try {
//禁止上传指定扩展名的文件
susetDeniedFilesList("ext,bat,jsp");
} catch (SQLException e1) {
e1printStackTrace();
}
try {
// 上传文件到服务器
suupload();
File fileup = new File(requestgetRealPath("upload"));
if(!fileupexists()){
// 创建目录
fileupmkdir();
}
// 处理多个文件的上传
for(int i = 0;i < sugetFiles()getCount();i++){
comjspsmartuploadFile file = sugetFiles()getFile(i);
if(!fileisMissing()){ // 如果文件有效
// 保存文件到指定上传目录
filesaveAs("/upload/new"+filegetFileExt(), suSAVE_VIRTUAL);
count = susave("/upload");
}
}
} catch (SmartUploadException e) {
eprintStackTrace();
}
outprintln(count +"file(s) uploaded");
如果你对这个上传组件不了解,最好是先去查查用法。。。
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
两个文件夹 一个放缩略过的(上边那哥们说用IMG控制,会失真) 二是放原图
之后view层入库的时候 存一个小图的URL 存一个大图的URL 名字像一楼说的那样 不过还要加个几位的随机数 避免重名 大小图都是这个名 之后
用IMG控制路径显示小图或者大图
网上有等比例缩放的java类 我空间也有
如果没必要 用路径就可以 要么你也可以存二进制到数据库
以上就是关于JSP上传文件到数据库中遇到java.io.File.<init>(Unknown Source)的问题全部的内容,包括:JSP上传文件到数据库中遇到java.io.File.<init>(Unknown Source)的问题、jsp怎么实现浏览本地图片选中上传到页面上,并且保存在数据库,从数据库读取也可以显示在页面上、用jsp、java实现上传图片,保存到数据库,从数据库中提取,显示到页面 这四步 我想问第一步,怎么上传图片等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)