java图片服务器,搭建图片服务器

本文目录一览:

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

—————————–

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

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

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

大神们 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上传图片到服务器指定路径

        private File myFile; //文件

private String myFileContentType; //类型

private String myFileFileName;    //文件名

//。。。。getXXX() setXXX()方法

//输入流

InputStream is = new FileInputStream(myFile);

//设定文件路径

String photoPath = ServletActionContext.getServletContext()

.getRealPath(“/user/photo/”);

File filePhotoPath = new File(photoPath);

//判断这个路径是否存在,如果不存在创建这个路径

if (!filePhotoPath.isDirectory()) {

filePhotoPath.mkdir();

}

String extension = FilenameUtils.getExtension(this

.getMyFileFileName());   //后缀名 比如jpg

String filename = UUID.randomUUID().toString() + “.” + extension;

// 目标文件

File tofile = new File(photoPath, filename);

// 输出流

OutputStream os = new FileOutputStream(tofile);

byte[] buffer = new byte[1024];

int length = 0;

while ((length = is.read(buffer))  0) {

os.write(buffer, 0, length);

}

// 关闭输入流

is.close();

// 关闭输出流

os.close();

java上传图片到远程服务器上,怎么解决呢?

需要这样的一个包 jcifs-1.1.11

public static void forcdt(String dir){

InputStream in = null;

OutputStream out = null;

File localFile = new File(dir);

try{

//创建file类 传入本地文件路径

//获得本地文件的名字

String fileName = localFile.getName();

//将本地文件的名字和远程目录的名字拼接在一起

//确保上传后的文件于本地文件名字相同

SmbFile remoteFile = new SmbFile(“smb://administrator:admin@10.0.0.1/e$/aa/”);

//创建读取缓冲流把本地的文件与程序连接在一起

in = new BufferedInputStream(new FileInputStream(localFile));

//创建一个写出缓冲流(注意jcifs-1.3.15.jar包 类名为Smb开头的类为控制远程共享计算机”io”包)

//将远程的文件路径传入SmbFileOutputStream中 并用 缓冲流套接

out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile+”/”+fileName));

//创建中转字节数组

byte[] buffer = new byte[1024];

while(in.read(buffer)!=-1){//in对象的read方法返回-1为 文件以读取完毕

out.write(buffer);

buffer = new byte[1024];

}

}catch(Exception e){

e.printStackTrace();

}finally{

try{

//注意用完操作io对象的方法后关闭这些资源,走则 造成文件上传失败等问题。!

out.close();

in.close();

}catch(Exception e){

e.printStackTrace();}

}

}

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:31
下一篇 2024-12-12 13:31

相关推荐

  • Java JsonPath 效率优化指南

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

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

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

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

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

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

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

    编程 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

发表回复

登录后才能评论