Java上传图片到服务器
对于图片处理有两种: 一种是插入数据库;一种是上传到服务器上。
本次讨论后一种 情况。
关于图片的访问,不要通过app服务器访问,即图片不要放在app服务器上,这样下去图片占的内存会越来越大,迟早会把app服务器搞死,针对的是java的开源的tomcat服务器
图片的访问应该通过apache及其他的一些web server来访问。
<html>
<head>
<title>Jsp+Servlet upload file</title>
</head>
<body>
<form name="upform" action="UploadServlet" method="POST" enctype="multipart/form-data">
<input type ="file" name="file1" id="file1"/><br/>
<input type ="file" name="file2" if="file2"/><br/>
<input type ="file" name="file3" id="file3"/><br/>
<input type="submit" value="Submit" /><br/>
<input type="reset" />
</form>
</body>
</html>
servlet文件
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.DefaultFileItemFactory;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
/**
* Servlet implementation class for Servlet: UploadServlet
*
*/
public class UploadServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
File tmpDir = null;//初始化上传文件的临时存放目录
File saveDir = null;//初始化上传文件后的保存目录
public UploadServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try{
String pp=null;
String upto=null;
if(ServletFileUpload.isMultipartContent(request)){
DiskFileItemFactory dff = new DiskFileItemFactory();//创建该对象
dff.setRepository(tmpDir);//指定上传文件的临时目录
dff.setSizeThreshold(10240000);//指定在内存中缓存数据大小,单位为byte
ServletFileUpload sfu = new ServletFileUpload(dff);//创建该对象
sfu.setFileSizeMax(50000000);//指定单个上传文件的最大尺寸
sfu.setSizeMax(10000000);//指定一次上传多个文件的总尺寸
FileItemIterator fii = sfu.getItemIterator(request);//解析request 请求,并返回FileItemIterator集合
while(fii.hasNext()){
FileItemStream fis = fii.next();//从集合中获得一个文件流
if(!fis.isFormField() && fis.getName().length()>0){//过滤掉表单中非文件域
String fileName = fis.getName().substring(fis.getName().lastIndexOf("\\"));//获得上传文件的文件名
System.out.println("request.getRealPath()=="+request.getRealPath("/"));
String uploadPath = request.getRealPath("/")+"dataimages\\";//选定上传的目录此处为当前目录
if(!new File(uploadPath).isDirectory())//选定上传的目录此处为当前目录,没有则创建
new File(uploadPath).mkdirs();
System.out.println("uploadPath="+uploadPath);
fileName=fileName.substring(fileName.lastIndexOf("."));//获取从.开始到最后的字符
//将时间转化为字符串用于给文件或者文件夹改名,防止传上来的图片名称相同
Date time=new Date();
String dirTime=String.valueOf(time.getTime());
//
BufferedInputStream in = new BufferedInputStream(fis.openStream());//获得文件输入流
//BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(saveDir+"\\"+dirTime+fileName)));//获得文件输出流
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(uploadPath+"\\"+dirTime+fileName)));//获得文件输出流
//pp为已经上传的文件
pp=uploadPath+dirTime+fileName;
System.out.println("pp="+pp);
//upto为上传的路径
upto=uploadPath;
Streams.copy(in, out, true);//开始把文件写到你指定的上传文件夹
}
}
/*//定义解压字符串,用于解压上传的rar文件,注意此处需要一个winrar.exe文件
String jieya=request.getRealPath("/")+ "WinRAR.exe x -t -o+ -p- \""+pp+"\" \""+upto+"\"";
//String jieya="D:\\Tomcat 5.5\\webapps\\fileupload\\WinRAR.exe x -t -o+ -p- \""+pp+"\" \""+upto+"\"";
Process p=Runtime.getRuntime().exec(jieya);//将传输的rar文件解压*/
response.getWriter().println("File upload successfully!!!");//终于成功了,还不到你的上传文件中看看,你要的东西都到齐了吗
}
}catch(Exception e){
e.printStackTrace();
}
}
public void init() throws ServletException {//初始化,没什么意义
super.init();
String tmpPath = "c:\\tmpdir";
String savePath = "c:\\updir";
tmpDir = new File(tmpPath);
saveDir = new File(savePath);
if(!tmpDir.isDirectory())
tmpDir.mkdir();
if(!saveDir.isDirectory())
saveDir.mkdir();
}
}
web.xml文件
<servlet>
<servlet-name>UploadServlet</servlet-name>
<servlet-class>dd.UploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UploadServlet</servlet-name>
<url-pattern>/UploadServlet</url-pattern>
</servlet-mapping>
分享到:
相关推荐
本测试服务主要是利用postman上传,后端接收图片保存至服务器,并且返回一个可以下载图片的URL路径
Java上传图片到服务器j[文].pdf
java图片上传到服务器以及在服务器上图片修改删除,可以从前端获取图片后端接收然后保存,还可以修改图片修改之前会删除原来的图片。
commons-fileupload.jar和/commons-io.jar下载
commons-io-master和commons-fileupload-master官方源码案例下载
主要为大家详细介绍了Java上传文件图片到服务器的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
通过base64上传图片到服务器并读取图片。上传的图片一般都会保存在服务器的某一个目录里面,这次的笔记则是对着图片的上传和读取的。
java分布式项目中,运用ftp客户端实现图片上传,nginx提供http服务实现图片回显
使用Java远程上传压缩包到服务器,或者在服务器上拉去压缩包或者文件,在服务器上创建目录。
安卓上传图片 java服务器。亲测试,可以用
主要是做的一个文件(图片)上传到服务器 用的是jsp+servlet做的 很有用啊 也很方便的
有时候我们需要在程序中连接ftp服务器进行文件上传,下载工作,这时候我们就会需要jar包支持我们的想法,一共需要连个jar包
本文通过实例代码给大家介绍了java上传文件图片到指定服务器目录的相关知识,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
主要为大家详细介绍了java实现上传网络图片到微信临时素材,网络图片上传到微信服务器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要为大家详细介绍了Java实现图片上传至服务器功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
js调用本地摄像头拍照并上传到web服务器。后台使用java实现图片的接收和存储,上传的图片默认保存到项目下的images文件夹中。
从本地上传图片到服务器,!!!分享给大家!!!
HTML+JAVA 手机端相册或者拍照上传到服务器。前台代码部分:手机选择图片input type=file,通过form表单提交到后台;后台java代码部分:获取表单提交的文件和普通控件数据,将文件写入服务器某路径下
在各大网站上都可以实现上传头像功能,可以选择自己喜欢的图片做头像,从本地上传,今天小编给大家分享Java实现图片上传到服务器并把上传的图片读取出来,需要的朋友参考下