java上传图片文件回显(java导入图片并显示图片)

  • 1、在java代码中怎么从服务器上把图片拿来放到数据库里
  • 2、java实现图片上传至服务器并显示,如何做?希望要具体的代码实现
  • 3、java 上传图片到CDN 亚马逊服务器上,要回显服务器的图片,问题在这:

大概流程:

1.上传插件的选择:此篇博文选择的是jQuery的zyupload文件上传插件;

2.上传请求发起后,java代码的处理:你是要将上传的图片只保存在服务器还是只保存在数据库还是说两者都采取。上传到服务器很简单,保存到数据库也很简单,但是此处需要考虑业务,图片保存在数据库时采用哪种保存方式(本博文业务来自于项目,因为图片数量巨多,故在数据库是通过保存图片的路径实现的,并非二进制流);

3.图片保存在数据库后,在前段页面的回显功能。

很简单。

可以手写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又做了封装,使用起来更傻瓜化,很容易掌握。

—————————–

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

SVN在服务器端的存储方式和客户端是不一样的,所以在服务器端是看不到源文件的。服务器端有两种存储方式FSFS和BDB,目前默认都是FSFS。

要导入文件有两种做法:

1、用import指令,将客户端文件夹导入到服务器端

2、先checkout空库到客户端,然后将要导入的文件夹放入客户端checkout产生的空文件夹,然后执行add将这些文件夹纳入SVN控制,最后执行commit上传到服务器

建议用后一种方法,因为前一种方法如果操作失误容易导致文件夹层次混乱

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

相关推荐

  • 定时器java,定时器插座

    本文目录一览: 1、java定时器怎么停止 2、java中有没有不受自然时间限制的定时器 3、java定时器会空转吗 4、java定时器用什么实现 5、java的定时器是否会提前执…

    编程 2024-11-30
  • 用mysql实现文件管理,运行mysql文件

    本文目录一览: 1、如何使用Navicat便捷管理 MySQL数据库 2、mysql数据库日志文件怎么管理 3、用MYSQL实现文件管理 4、在多文件上传中如何用mysql开启事务…

    编程 2024-12-07
  • java文件io,java文件io流原理

    本文目录一览: 1、java的几种IO流读取文件方式 2、java中怎么用io流读写文件 3、同学们知道Java中的IO是指什么? java的几种IO流读取文件方式 一、超类: 字…

    编程 2024-12-17
  • Linux更改文件权限的详细指南

    在Linux操作系统中,文件权限是重要的保护文件安全的措施。在Linux环境中,我们可以通过一系列的命令来更改文件权限,包括修改文件的所有者、组以及文件权限的读、写、执行等。 一、…

    编程 2024-11-17
  • HTMLFile——万能文件对象

    一、htmlfile对象 1、htmlfile是一个COM对象,可以用在VBScript和JavaScript中,可以用于访问URL、XML和HTML文件。 2、使用htmlfil…

    编程 2024-12-03
  • Java宏定义详解

    一、宏定义的概念 宏(define)是一个预处理器指令,可以用来定义一个常量或一个简单的函数。使用宏可以简化代码,提高代码的重用性和可读性,同时可以节省一些代码空间。在Java语言…

    编程 2025-02-01
  • java管道,Java 管道

    本文目录一览: 1、java 进程间通讯的有几种方法? 2、请问java管道流是用来干嘛的?通俗的说一下 3、java 中的管道流是怎么用的?它与不同的输入输出流的区别在哪里? 4…

    编程 2024-11-17
  • Java实现ListNode的数据结构与算法

    一、什么是ListNode? ListNode是链表的一个重要组成部分,可以存储任意类型的数据,并且每个节点都指向下一个节点,形成了链式的结构。相比于数组,链表的插入、删除操作更加…

    编程 2024-11-01
  • cad图像描边文件变小,cad图像描边文件变小怎么办

    本文目录一览: 1、天正2014(CAD2014)画图后,文件特别大,怎么使文件变小 2、如何给CAD文件减肥 (CAD文件变小) 3、CAD图形如何变小 4、cad文件过大怎么变…

    编程 2024-10-24
  • Protobuf Java使用详解

    Protobuf(Protocol Buffers,以下简称PB)是Google开发的一种数据序列化协议,可以用于数据存储、通信协议等场景,具有高效、快速、简单的特点。在Java开…

    编程 2024-11-15