java图片服务器,java获取服务器上的图片

本文目录一览:

java 中如何向服务器上传图片

我们使用一些已有的组件帮助我们实现这种上传功能。

常用的上传组件:

Apache 的 Commons FileUpload

JavaZoom的UploadBean

jspSmartUpload

以下,以FileUpload为例讲解

1、在jsp端

form id=”form1″ name=”form1″ method=”post” action=”servlet/fileServlet” enctype=”multipart/form-data”

要注意enctype=”multipart/form-data”

然后只需要放置一个file控件,并执行submit操作即可

input name=”file” type=”file” size=”20″

input type=”submit” name=”submit” value=”提交”

2、web端

核心代码如下:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding(“UTF-8”);

DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

try {

List items = upload.parseRequest(request);

Iterator itr = items.iterator();

while (itr.hasNext()) {

FileItem item = (FileItem) itr.next();

if (item.isFormField()) {

System.out.println(“表单参数名:” + item.getFieldName() + “,表单参数值:” + item.getString(“UTF-8”));

} else {

if (item.getName() != null !item.getName().equals(“”)) {

System.out.println(“上传文件的大小:” + item.getSize());

System.out.println(“上传文件的类型:” + item.getContentType());

System.out.println(“上传文件的名称:” + item.getName());

File tempFile = new File(item.getName());

File file = new File(sc.getRealPath(“/”) + savePath, tempFile.getName());

item.write(file);

request.setAttribute(“upload.message”, “上传文件成功!”);

}else{

request.setAttribute(“upload.message”, “没有选择上传文件!”);

}

}

}

}catch(FileUploadException e){

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

request.setAttribute(“upload.message”, “上传文件失败!”);

}

request.getRequestDispatcher(“/uploadResult.jsp”).forward(request, response);

}

java实现图片上传至服务器并显示,如何做?希望要具体的代码实现

很简单。

可以手写IO读写(有点麻烦)。

怕麻烦的话使用FileUpload组件 在servlet里doPost嵌入一下代码

public void doPost(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException{

response.setContentType(“text/html;charset=gb2312”);

PrintWriter out=response.getWriter();

//设置保存上传文件的目录

String uploadDir =getServletContext().getRealPath(“/up”);

System.out.println(uploadDir);

if (uploadDir == null)

{

out.println(“无法访问存储目录!”);

return;

}

//根据路径创建一个文件

File fUploadDir = new File(uploadDir);

if(!fUploadDir.exists()){

if(!fUploadDir.mkdir())//如果UP目录不存在 创建一个 不能创建输出…

{

out.println(“无法创建存储目录!”);

return;

}

}

if (!DiskFileUpload.isMultipartContent(request))

{

out.println(“只能处理multipart/form-data类型的数据!”);

return ;

}

DiskFileUpload fu = new DiskFileUpload();

//最多上传200M数据

fu.setSizeMax(1024 * 1024 * 200);

//超过1M的字段数据采用临时文件缓存

fu.setSizeThreshold(1024 * 1024);

//采用默认的临时文件存储位置

//fu.setRepositoryPath(…);

//设置上传的普通字段的名称和文件字段的文件名所采用的字符集编码

fu.setHeaderEncoding(“gb2312”);

//得到所有表单字段对象的集合

List fileItems = null;

try

{

fileItems = fu.parseRequest(request);//解析request对象中上传的文件

}

catch (FileUploadException e)

{

out.println(“解析数据时出现如下问题:”);

e.printStackTrace(out);

return;

}

//处理每个表单字段

Iterator i = fileItems.iterator();

while (i.hasNext())

{

FileItem fi = (FileItem) i.next();

if (fi.isFormField()){

String content = fi.getString(“GB2312”);

String fieldName = fi.getFieldName();

request.setAttribute(fieldName,content);

}else{

try

{

String pathSrc = fi.getName();

if(pathSrc.trim().equals(“”)){

continue;

}

int start = pathSrc.lastIndexOf(‘\\’);

String fileName = pathSrc.substring(start + 1);

File pathDest = new File(uploadDir, fileName);

fi.write(pathDest);

String fieldName = fi.getFieldName();

request.setAttribute(fieldName, fileName);

}catch (Exception e){

out.println(“存储文件时出现如下问题:”);

e.printStackTrace(out);

return;

}

finally //总是立即删除保存表单字段内容的临时文件

{

fi.delete();

}

}

}

注意 JSP页面的form要加enctype=”multipart/form-data” 属性, 提交的时候要向服务器说明一下 此页面包含文件。

如果 还是麻烦,干脆使用Struts 的上传组件 他对FileUpload又做了封装,使用起来更傻瓜化,很容易掌握。

—————————–

以上回答,如有不明白可以联系我。

javaweb中为什么要重启服务器才能更新图片

javaweb中要重启服务器才能更新图片原因:这是服务器的自我保护机制,为了防止暴露绝对路径。把静态的文件在启动的时候都会加载到classpath的目录下的,package时把static目录下的资源一起打包到了jar包或war包中,此时上传的图片并未传入启动了的项目中,所以访问不到。项目重启后又会打成新的jar包,包含上一次上传的的图片,此时才会在页面上显示简单点说就是:上传图片后target包中没有加载重启服务器后target包内会重新加载。

java实现图片上传至服务器并显示,如何做?

给你段代码,是用来在ie上显示图片的(servlet):

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String id = request.getParameter(“id”);

File file = new File(getServletContext().getRealPath(“/”)+”out”+”/”+id+”.gif”);

response.setCharacterEncoding(“gb2312”);

response.setContentType(“doc”);

response.setHeader(“Content-Disposition”, “attachment; filename=” + new String(file.getName().getBytes(“gb2312″),”iso8859-1”));

System.out.println(new String(file.getName().getBytes(“gb2312″),”gb2312”));

OutputStream output = null;

FileInputStream fis = null;

try

{

output = response.getOutputStream();

fis = new FileInputStream(file);

byte[] b = new byte[1024];

int i = 0;

while((i = fis.read(b))!=-1)

{

output.write(b, 0, i);

}

output.write(b, 0, b.length);

output.flush();

response.flushBuffer();

}

catch(Exception e)

{

System.out.println(“Error!”);

e.printStackTrace();

}

finally

{

if(fis != null)

{

fis.close();

fis = null;

}

if(output != null)

{

output.close();

output = null;

}

}

}

这个程序的功能是根据传入的文件名(id),来为浏览器返回图片流,显示在img标签里

标签的格式写成如下:

img src=” “/br/

显示的是111.gif这个图片

你上面的问题:

1.我觉得你的第二个办法是对的,我们也是这样做的,需要的是把数据库的记录id号传进servlet,然后读取这条记录中的路径信息,生成流以后返回就是了

关于上传文件的问题,我记得java中应该专门有个负责文件上传的类,你调用就行了,上传后存储在指定的目录里,以实体文件的形式存放

你可以参考这个:

回复:

1.是的,在response中写入流就行了

2.是发到servlet中的,我们一般都是写成servlet,短小精悍,使用起来方便,struts应该也可以,只是我没有试过,恩,你理解的很对

java保存图片到本地服务器共享

1、调用第一个接口时,先将多张图片存到本地。再调用第二个接口,将图片统一上传到图片服务器上。

2、根据类别,上传多张图片。

java 如何只通过后台把本地的图片上传的服务器上去?

这里你弄错了一个问题;\x0d\x0a你的程序是要传递图片的二进制数据.\x0d\x0a而不是传递路径,然后再到服务器读取文件数据(你的服务器有这个文件?)\x0d\x0a只有当你的服务器下有这个文件了,你传递一个路径,读取是可以的.\x0d\x0a//—\x0d\x0a关于如何上传文件, 自己google一下,很多教程

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/160912.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-21 01:16
下一篇 2024-11-21 01:16

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • 用Python绘制酷炫图片

    在本篇文章中,我们将展示如何使用Python绘制酷炫的图片。 一、安装Python绘图库 在使用Python绘制图片之前,我们需要先安装Python绘图库。Python有很多绘图库…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29

发表回复

登录后才能评论