jsp+servlet上传多张图片向数据库保存名称
2018-03-21 17:33
429 查看
#jsp
<tr>
<td align="right">保修卡照片:</td>
<td ><input type="file" height="20px" name="image" id="image"/></td>
<td align="right">保修卡NVM表:</td>
<td><input type="file" name="photo" id="photo"/></td>
</tr>
<tr>
<td align="right">机器照片:</td>
<td><input type="file" name="picture" id="picture"/></td>
<td align="right">登记日期:</td>
<td><input type="date" name="regtime" id="rgtime"/></td>
</tr>
<tr>
<td></td>
<td align="right"><input type="submit" value="添加" /></td>
<td><input type="reset" value="重置"></td>
#servlet
public static Machine upload2(HttpServletRequest request,String uploadPath){
//Machine 表单实体类
try {
Machine machine =new Machine();
ConvertUtils.register(new DateLocaleConverter(), Date.class);//日期转换器
BeanUtils.populate(machine, request.getParameterMap());
DiskFileItemFactory factory = new DiskFileItemFactory();//创建一个工厂对象
ServletFileUpload upload = new ServletFileUpload(factory);//创建一个文件上传解析器
upload.setHeaderEncoding("UTF-8"); //解决上传文件乱码问题
if(!ServletFileUpload.isMultipartContent(request)){
return machine;
}
List<FileItem> list = upload.parseRequest(request);
for(FileItem item : list){
if(item.isFormField()){//如果是普通表单文本
String name = item.getFieldName();
String value = item.getString("UTF-8");
// System.out.println(name + "=" + value);
BeanUtils.setProperty(machine, name, value);
}else{
String filename=item.getFieldName();//获取上传文件的属性名
String filedName=item.getName();//获取上传文件的名称
String fileName="";
String fileName1="";
String fileName2="";
String savepath = uploadPath;//上传的路径
//String savePath = this.getServletContext().getRealPath("/upload");
if(filename.equals("image")){
filedName=item.getName();
if(filename!=null&&!filedName.equals("")){
//针对不同浏览器上传格式不同,只保留上传文件的名称部分,并且为了防止文件名称相同被覆盖,赋予一个随机id
filedName=UUID.randomUUID().toString()+filedName.substring(filedName.lastIndexOf("\\")+1);
fileName=filedName;
// System.out.println(fileName);
machine.setImage(fileName);//存入数据库 ps:这里只向数据库保存文件名称
}
}else if(filename.equals("photo")){
filedName=item.getName();
if(filename!=null&&!filedName.equals("")){
filedName=UUID.randomUUID().toString()+filedName.substring(filedName.lastIndexOf("\\")+1);
fileName1=filedName;
// System.out.println(fileName1);
machine.setPhoto(fileName1);
}
}else if(filename.equals("picture")){
filedName=item.getName();
if(filename!=null&&!filedName.equals("")){
filedName=UUID.randomUUID().toString()+filedName.substring(filedName.lastIndexOf("\\")+1);
fileName2=filedName;
// System.out.println(fileName2);
machine.setPicture(fileName2);
}
}
// System.out.println(filename+"="+filedName);
if(filedName==null || filedName.trim().equals("")){
continue;
}
InputStream in = item.getInputStream();//创建一个输入流
FileOutputStream out = new FileOutputStream(savepath + "\\" + filedName);//创建一个输出流
byte buffer[] = new byte[1024];//创建一个缓冲区
int len = 0;
while((len=in.read(buffer))>0){
//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savepath + "\\" + filename)当中
out.write(buffer, 0, len);
}
in.close();//关闭输入流
out.close();//关闭输出流
item.delete();//删除临时文件
}
}
machine.setId(UUID.randomUUID().toString());//给表单生成一个随机id
return machine;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
<tr>
<td align="right">保修卡照片:</td>
<td ><input type="file" height="20px" name="image" id="image"/></td>
<td align="right">保修卡NVM表:</td>
<td><input type="file" name="photo" id="photo"/></td>
</tr>
<tr>
<td align="right">机器照片:</td>
<td><input type="file" name="picture" id="picture"/></td>
<td align="right">登记日期:</td>
<td><input type="date" name="regtime" id="rgtime"/></td>
</tr>
<tr>
<td></td>
<td align="right"><input type="submit" value="添加" /></td>
<td><input type="reset" value="重置"></td>
#servlet
public static Machine upload2(HttpServletRequest request,String uploadPath){
//Machine 表单实体类
try {
Machine machine =new Machine();
ConvertUtils.register(new DateLocaleConverter(), Date.class);//日期转换器
BeanUtils.populate(machine, request.getParameterMap());
DiskFileItemFactory factory = new DiskFileItemFactory();//创建一个工厂对象
ServletFileUpload upload = new ServletFileUpload(factory);//创建一个文件上传解析器
upload.setHeaderEncoding("UTF-8"); //解决上传文件乱码问题
if(!ServletFileUpload.isMultipartContent(request)){
return machine;
}
List<FileItem> list = upload.parseRequest(request);
for(FileItem item : list){
if(item.isFormField()){//如果是普通表单文本
String name = item.getFieldName();
String value = item.getString("UTF-8");
// System.out.println(name + "=" + value);
BeanUtils.setProperty(machine, name, value);
}else{
String filename=item.getFieldName();//获取上传文件的属性名
String filedName=item.getName();//获取上传文件的名称
String fileName="";
String fileName1="";
String fileName2="";
String savepath = uploadPath;//上传的路径
//String savePath = this.getServletContext().getRealPath("/upload");
if(filename.equals("image")){
filedName=item.getName();
if(filename!=null&&!filedName.equals("")){
//针对不同浏览器上传格式不同,只保留上传文件的名称部分,并且为了防止文件名称相同被覆盖,赋予一个随机id
filedName=UUID.randomUUID().toString()+filedName.substring(filedName.lastIndexOf("\\")+1);
fileName=filedName;
// System.out.println(fileName);
machine.setImage(fileName);//存入数据库 ps:这里只向数据库保存文件名称
}
}else if(filename.equals("photo")){
filedName=item.getName();
if(filename!=null&&!filedName.equals("")){
filedName=UUID.randomUUID().toString()+filedName.substring(filedName.lastIndexOf("\\")+1);
fileName1=filedName;
// System.out.println(fileName1);
machine.setPhoto(fileName1);
}
}else if(filename.equals("picture")){
filedName=item.getName();
if(filename!=null&&!filedName.equals("")){
filedName=UUID.randomUUID().toString()+filedName.substring(filedName.lastIndexOf("\\")+1);
fileName2=filedName;
// System.out.println(fileName2);
machine.setPicture(fileName2);
}
}
// System.out.println(filename+"="+filedName);
if(filedName==null || filedName.trim().equals("")){
continue;
}
InputStream in = item.getInputStream();//创建一个输入流
FileOutputStream out = new FileOutputStream(savepath + "\\" + filedName);//创建一个输出流
byte buffer[] = new byte[1024];//创建一个缓冲区
int len = 0;
while((len=in.read(buffer))>0){
//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savepath + "\\" + filename)当中
out.write(buffer, 0, len);
}
in.close();//关闭输入流
out.close();//关闭输出流
item.delete();//删除临时文件
}
}
machine.setId(UUID.randomUUID().toString());//给表单生成一个随机id
return machine;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
相关文章推荐
- 上传图片并保存到数据库里的servlet代码和jsp代码( 上传图片比实际图片大时,可以用此方法)
- struts2中使用Blob类型处理图片上传保存在数据库中并在JSP页面中显示图片
- ASP.NET利用.FileUpload上传图片并将图片名称保存到数据库
- SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库
- 求一段smartupload上传图片的代码,不需要保存到数据库,但是想在jsp页面选中文件夹图片后,立马可以显示
- SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库
- servlet+jsp同一个页面上传文字图片,并将图片地址保存到MYSQL
- SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库
- 使用Servlet上传多张图片——前台页面层(Index.jsp)
- WPF用流的方式上传/显示/下载图片文件(保存在数据库)
- ueditor图片上传,以及图片路径保存进数据库
- php上传图片到指定位置路径保存到数据库的具体实现
- java通过commons-fileupload实现多张图片的上传(servlet)
- 上传图片后使用数据库保存图片的示例分享
- jsp+servlet实现上传图片
- jsp图片上传到数据库里面之后,不能直接在页面上显示,而是提示下载
- Servlet+Jsp实现图片或文件的上传功能
- Jsp/servlet上传文件、图片(老版方法)
- jsp+servlet实现多个图片(附件)和其他信息同时上传
- java通过commons-fileupload实现多张图片的上传(jsp页面)