`
xinyao
  • 浏览: 99222 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java上传图片到服务器

    博客分类:
  • java
阅读更多
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>
分享到:
评论

相关推荐

    java上传图片至服务器并且返回下载URL

    总结来说,实现"java上传图片至服务器并且返回下载URL"的功能,主要涉及HTTP文件上传、文件存储、路径管理、响应处理和安全性控制等多个方面,结合Servlet、Spring等相关技术可以有效地完成这一任务。在开发过程中,...

    java上传图片到服务器所有jar包下载

    在给定的“java上传图片到服务器所有jar包下载”中,主要涉及到两个关键的库:`commons-fileupload.jar`和`commons-io.jar`。 `commons-fileupload.jar`是Apache Commons项目的一个组件,专门用于处理HTTP协议中的...

    java图片上传到服务器以及在服务器上图片修改删除

    java图片上传到服务器以及在服务器上图片修改删除,可以从前端获取图片后端接收然后保存,还可以修改图片修改之前会删除原来的图片。

    java上传图片到服务器源码下载

    在Java编程领域,上传图片到服务器是一项常见的任务,涉及到网络通信、文件处理和服务器端的数据存储。本资源提供了两个开源库的源码:`commons-io`和`commons-fileupload`,它们是Java进行文件上传操作的重要工具。...

    java上传文件到服务器

    综上所述,Java上传文件到服务器是一个涉及HTTP协议、Multipart数据格式、Servlet API以及可能的第三方库(如Apache Commons FileUpload)的过程。理解这些知识点对于开发健壮且安全的文件上传功能至关重要。

    java实现客户端上传图片到ftp服务器,nginx提供http服务下载图片

    在Java分布式项目中,涉及到客户端上传图片到FTP服务器并由Nginx提供HTTP服务进行图片下载,这是一个典型的文件传输和Web服务集成的场景。这里主要涉及三个关键知识点:Java FTP客户端编程、Nginx服务器配置以及Java...

    java 实现上传文件到远程服务器

    ### Java 实现上传文件到远程服务器(Spring MVC) 在现代软件开发中,文件上传功能是十分常见的需求之一,尤其在Web应用中。本篇文章将详细介绍如何利用Java编程语言结合Spring MVC框架来实现文件的远程上传功能。...

    java上传图片到aws s3

    java上传图片到aws s3,最近因为项目原因,需要将程序下载到本地的图片上传到aws s3提供给国外的客户使用,文件为我使用的详细代码

    Java上传文件图片到服务器的方法

    上传图片:(this, 'prvid')" multiple="multiple"&gt; 提交" /&gt; 预览容器 ``` 在上面的代码中,我们可以看到 HTML 表单的编写,其中包括文件上传的input控件和图片预览的容器。并且,我们使用了JavaScript...

    Java上传图片到服务器j[文].pdf

    在Java中,将图片上传到服务器是一个常见的任务,特别是在开发Web应用时。本文将详细讲解如何使用Java和Servlet实现这个功能。首先,我们要明白的是,图片通常不会直接存储在应用程序服务器(如Tomcat)上,因为这...

    java文件上传到服务器

    在Java Web开发中,文件上传是一项常见的功能,例如将用户选择的图片或其他文件发送到服务器进行存储或处理。本项目采用jsp和servlet技术来实现这个功能,这是一套经典的Web开发模式,非常适合初学者学习和理解。...

    Java实现上传文件图片到指定服务器目录

    * 网站上传图片和文件 * 游戏客户端上传游戏存档 * office文档上传 * 视频和音频上传 五、结语 Java文件上传是非常重要的功能,它可以帮助开发者快速实现文件上传功能。本文通过实例代码,详细介绍了Java实现上传...

    安卓上传图片 java服务器

    在安卓应用开发中,用户经常需要上传图片到服务器进行存储或分享。这个场景涉及到了安卓客户端与Java服务器之间的数据交互,通常使用HTTP或HTTPS协议来完成。本文将深入讲解如何在安卓端实现图片上传功能,并在Java...

    利用java连接发图片服务器上传下载文件,所需的jar包

    在Java编程中,进行FTP(File Transfer Protocol)服务器的文件上传和下载是常见的任务,尤其在处理文件存储、数据交换等场景。为了实现这个功能,我们需要依赖特定的库,也就是所谓的jar包。根据标题和描述,这里...

    通过base64上传图片到服务器并读取图片

    2. **图片上传到服务器** 将Base64字符串作为HTTP请求的一部分发送到服务器。通常,你可以使用Ajax或者Fetch API来实现。在请求体中,可以将Base64字符串放在JSON对象内,然后发送POST请求。 ```javascript let ...

    java上传文件到文件服务器源码和jar

    7. **上传图片到文件服务器**:这可能是压缩包中的一个示例文件,用于演示如何通过Java代码上传图片到FastDFS服务器。通过分析这个例子,开发者可以快速理解整个上传过程。 在实际开发中,我们需要确保Java应用正确...

    java实现上传图片存入到数据库

    在Java编程中,将图片上传并存储到数据库是一项常见的任务,尤其在开发Web应用时。这一过程涉及到文件处理、数据库操作以及可能的图像处理。以下是对这个主题的详细阐述: 首先,我们需要理解基本的文件上传流程。...

    java实现上传网络图片到微信临时素材

    微信临时素材是指微信服务器上的一种临时存储形式,通过上传图片到微信临时素材,我们可以在微信平台上使用这些图片。 知识点 1:微信临时素材 微信临时素材是指微信服务器上的一种临时存储形式,用户可以上传图片...

Global site tag (gtag.js) - Google Analytics