「java发送图片」java发送图片邮件找不到文件

博主:adminadmin 2022-11-23 09:04:08 52

今天给各位分享java发送图片的知识,其中也会对java发送图片邮件找不到文件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java如何实现客户端向服务器端传送一个图片的代码,详细一点,最好能有注释,新手求解

public class SocketTest extends Thread {

private Socket so;

private DataInputStream in;

public static void main(String[] args) {

SocketTest app = new SocketTest();

app.startup();

}

public void startup() {

try {

// 创建服务端socket对象并指定监听端口

ServerSocket ss = new ServerSocket(9999);

System.out.println("listening...");

// 等待客户端连接

so = ss.accept();

System.out.println("connected");

// 开始读取数据

start();

} catch (Exception e) {

e.printStackTrace();

}

}

public void run() {

try {

// 创建socket输入流

in = new DataInputStream(so.getInputStream());

while (true) {

try {

// 定义接收缓冲区(64字节)

byte[] buf = new byte[64];

// 将数据读到接收缓冲区中,并返回实际读到的数据长度

int len = in.read(buf, 0, 64);

// 长度为-1说明到达输入流末尾,socket已关闭

if (len 1) {

System.out.println("closed");

break;

}

System.out.println("(" + len + ")");

} catch (Exception e) {

// 读数据异常

e.printStackTrace();

}

}

} catch (Exception e) {

// 监听异常

e.printStackTrace();

}

}

}

在java聊天程序中如何发送图片

我这里只介绍如何发送

File file=new File(path);//这里的path是你要发送的图片的路径

int b = (int) file.length();//获得图片大小

byte[] bt=new byte[b];//初始化一个图片大小的byte数组

RandomAccessFile raf = new RandomAccessFile(path", "r");//初始化一个读图片的流。path刚上面介绍了

raf.read(bt);//将图片读入byte数组。当然你可以将图片的后缀及其名字也写如byte数组中,这将是你以后便于操作

raf.close();

假如你现在获得了这样一个byte数组,那么发送表情就是发送这里的byte数组,相信socket的发送流你会吧,不会了可以问我!

当然发送了你就得接收,很简单你就是将byte数组接收过来,然后如果你将后缀及其名字写入了byte就先将他们读出来,然后剩下的就是图片的内容,你用同样的流写入某个地方就行了,

RandomAccessFile raf1 = new RandomAccessFile(path1, "rw");//这里的path1是我打算写到的地方,

raf1.write(bt1);//将接收到的bt1即接收到的byte数组写入指定的地方,当然你要是显示在那个聊天窗口,得实现窗口显示图片的内容即可

raf1.close();

java图片传送问题

这样写吧:

try

{

Socket s = ss.accept();

InputStream is is = s.getInputStream();

BufferedInputStream bis = new BufferedInputStream(is);

BufferedImage input = ImageIO.read(bis);

bis.close();

s.close();

ss.close();

}

catch(Exception e)

{

}

这样就能在内存中拿到图片input了,

然后是保存:

FileDialog fds = new FileDialog(this,"SAVE",FileDialog.SAVE);

fds.setVisible(true);

String path = fds.getDirectory();

String fileName = fds.getFile();

String fullPath = path+fileName;

try

{

File outFile = new File(fullPath);

ImageIO.write(input,"JPG",outFile);//主要是这一句。

}

catch (Exception exp)

{

}

注意一下,我给的方法中用了java 6.0的一些方法,所以得确保你的jdk是6.0的

在JAVA中发送图片的代码是什么

发送图片的代码实际上就是把图片路径存储在数据库中,然后你发哪个图片,点一下,就把路径值取出来!

java怎样编写发送图片的程序

首先,我们创建一个新的web工程,在工程的WebRoot目录下新建一个upload文件夹,这样当我们将该工程部署到服务器上时,服务器便也生成个upload文件夹,用来存放上传的资源。

然后,在WebRoot目录下新建一个jsp文件,主要实现的作用就是选择上传的文件,提交至servlet来进行处理

详细代码如下:一个form将文件信息通过post方式传送到指定的servlet

%@ page language="java" import="java.util.*" pageEncoding="utf-8"% 

String path = request.getContextPath(); 

String basePath = 

request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; % 

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" html head 

base %=basePath%" 

titleMy JSP 'upload.jsp' starting page/title meta http-equiv="pragma" content="no-cache" 

meta http-equiv="cache-control" content="no-cache" meta http-equiv="expires" content="0" 

meta http-equiv="keywords" content="keyword1,keyword2,keyword3" meta http-equiv="description" content="This is my page" !-- 

link rel="stylesheet" type="text/css"  -- 

/head 

body 

form action="/upload/UpLoad" method="post" enctype="multipart/form-data" 

请选择上传的图片或文件:input type="file" name="fileName"/input type="submit" value="上传"/ 

/form 

/body

 /html

可以看到,我们将数据提交到工程下的upload/UpLoad。 之后,我们就来编写这个servlet——UpLoad.java

  package load; import java.io.File; 

import java.io.IOException; import java.io.PrintWriter; import java.util.List; 

import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; 

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import mons.fileupload.FileItem; 

import mons.fileupload.FileUploadException; import mons.fileupload.disk.DiskFileItemFactory; import mons.fileupload.servlet.ServletFileUpload; public class UpLoad extends HttpServlet { @SuppressWarnings("unchecked") @Override 

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); 

resp.setContentType("text/html;charset=utf-8"); 

//为解析类提供配置信息 

DiskFileItemFactory factory = new DiskFileItemFactory(); 

//创建解析类的实例 

ServletFileUpload sfu = new ServletFileUpload(factory); 

//开始解析 

sfu.setFileSizeMax(1024*400); 

//每个表单域中数据会封装到一个对应的FileItem对象上 try { 

ListFileItem items = sfu.parseRequest(req); 

//区分表单域 

for (int i = 0; i  items.size(); i++) { FileItem item = items.get(i); 

 var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;

//isFormField为true,表示这不是文件上传表单域 if(!item.isFormField()){ 

ServletContext sctx = getServletContext(); 

//获得存放文件的物理路径 

//upload下的某个文件夹 得到当前在线的用户 找到对应的文件夹  

String path = sctx.getRealPath("/upload"); System.out.println(path); 

//获得文件名 

String fileName = item.getName(); System.out.println(fileName); 

//该方法在某些平台(操作系统),会返回路径+文件名 

fileName = fileName.substring(fileName.lastIndexOf("/")+1); File file = new File(path+"\\"+fileName); if(!file.exists()){ item.write(file); 

//将上传图片的名字记录到数据库中  

resp.sendRedirect("/upload/l"); } } } 

} catch (Exception e) { e.printStackTrace(); }  

}

因为已对 代码做了详细的注释,所以相信大家也能基本上传的这个过程。要注意的一点是解析实例空间大小的设置。我们希望上传的文件不会是无限大,因此,设置

  .setFileSizeMax(1024*400);

java发送图片的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java发送图片邮件找不到文件、java发送图片的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。