java发送图片
A. 在java中发送图片的代码是什么
发送图片的代码实际上就是把图片路径存储在数据库中,然后你发哪个图片,点一下,就把路径值取出来!
B. java如何传输动态图片(GIF图片)
实现思路:无论是何种类型,都是转换为流的形式进行的文件传输和存储。
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
OutputStreamWriter pw = null;//定义一个流
try {
String file = "D:/test/test.GIF";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
pw = new OutputStreamWriter(new FileOutputStream(“D:/New.GIF”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.GIF”实例
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
pw.write(str);//将要写入文件的内容,可以多次write
};
bre.close();
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
C. java怎样编写发送图片的程序
首先,我们创建一个新的web工程,在工程的WebRoot目录下新建一个upload文件夹,这样当我们将该工程部署到服务器上时,服务器便也生成个upload文件夹,用来存放上传的资源。
然后,在WebRoot目录下新建一个jsp文件,主要实现的作用就是选择上传的文件,提交至servlet来进行处理
详细代码如下:一个form将文件信息通过post方式传送到指定的servlet
<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head>
<base<%=basePath%>">
<title>MyJSP'upload.jsp'startingpage</title><metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache"><metahttp-equiv="expires"content="0">
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"><metahttp-equiv="description"content="Thisismypage"><!--
<linkrel="stylesheet"type="text/css">-->
</head>
<body>
<formaction="/upload/UpLoad"method="post"enctype="multipart/form-data">
请选择上传的图片或文件:<inputtype="file"name="fileName"/><inputtype="submit"value="上传"/>
</form>
</body>
</html>
可以看到,我们将数据提交到工程下的upload/UpLoad。 之后,我们就来编写这个servlet——UpLoad.java
packageload;importjava.io.File;
importjava.io.IOException;importjava.io.PrintWriter;importjava.util.List;
importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importmons.fileupload.FileItem;
importmons.fileupload.FileUploadException;importmons.fileupload.disk.DiskFileItemFactory;importmons.fileupload.servlet.ServletFileUpload;{@SuppressWarnings("unchecked")@Override
protectedvoidservice(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//为解析类提供配置信息
DiskFileItemFactoryfactory=newDiskFileItemFactory();
//创建解析类的实例
ServletFileUploadsfu=newServletFileUpload(factory);
//开始解析
sfu.setFileSizeMax(1024*400);
//每个表单域中数据会封装到一个对应的FileItem对象上try{
List<FileItem>items=sfu.parseRequest(req);
//区分表单域
for(inti=0;i<items.size();i++){FileItemitem=items.get(i);
varcpro_psid="u2572954";varcpro_pswidth=966;varcpro_psheight=120;
//isFormField为true,表示这不是文件上传表单域if(!item.isFormField()){
ServletContextsctx=getServletContext();
//获得存放文件的物理路径
//upload下的某个文件夹得到当前在线的用户找到对应的文件夹
Stringpath=sctx.getRealPath("/upload");System.out.println(path);
//获得文件名
StringfileName=item.getName();System.out.println(fileName);
//该方法在某些平台(操作系统),会返回路径+文件名
fileName=fileName.substring(fileName.lastIndexOf("/")+1);Filefile=newFile(path+"\"+fileName);if(!file.exists()){item.write(file);
//将上传图片的名字记录到数据库中
resp.sendRedirect("/upload/l");}}}
}catch(Exceptione){e.printStackTrace();}
}
}
因为已对 代码做了详细的注释,所以相信大家也能基本上传的这个过程。要注意的一点是解析实例空间大小的设置。我们希望上传的文件不会是无限大,因此,设置
.setFileSizeMax(1024*400);
D. 在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();
E. java怎么把图片和文字分开发送到后端
java如何把图片和文字从前端传图片到后端
1.在 eclipse中创建一个web工
程项目。然后在lib文件夹中
添加文件上传需要用到的组合中。
2. FileUploadServlet.java的内
容显示出来。
3.编辑好
FileUploadServlet java文件后
在web.xm文件中配置映射。
F. java怎么把图片和文字分开发送到后端
java把图片和文字分开发送到后端方法:
1、在eclipse中创建一个web工程项目,在lib文件夹中添加文件上传需要用到的组件common-io和uploadfile。
2、编辑好FileUploadServlet,java文件后,在web.xml文件中配置映射路径。
3、点击浏览,选择要上传的图片。选择后会显示图片所在的路径。点击提交。
G. 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();
}
}
}
H. java怎么生成带用户微信头像的图片,并把这张图片发送给用户。
1、下载生成二维码所需要的jar包qrcode.jar;2、直接上生成二维码的java代码 //需要导入的包import java.awt.Color;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;import com.swetake.util.Qrcode; /** * 生成二维码(QRCode)图片 * @param content 二维码图片的内容 * @param imgPath 生成二维码图片完整的路径 * @param ccbpath 二维码图片中间的logo路径 */ public static int createQRCode(String content, String imgPath,String ccbPath) { try { Qrcode qrcodeHandler = new Qrcode(); qrcodeHandler.setQrcodeErrorCorrect('M'); qrcodeHandler.setQrcodeEncodeMode('B'); qrcodeHandler.setQrcodeVersion(7); // System.out.println(content); byte[] contentBytes = content.getBytes("gb2312"); //构造一个BufferedImage对象 设置宽、高 BufferedImage bufImg = new BufferedImage(140, 140, BufferedImage.TYPE_INT_RGB); Graphics2D gs = bufImg.createGraphics(); gs.setBackground(Color.WHITE); gs.clearRect(0, 0, 140, 140); // 设定图像颜色 > BLACK gs.setColor(Color.BLACK); // 设置偏移量 不设置可能导致解析出错 int pixoff = 2; // 输出内容 > 二维码 if (contentBytes.length > 0 && contentBytes.length < 120) { boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes); for (int i = 0; i < codeOut.length; i++) { for (int j = 0; j < codeOut.length; j++) { if (codeOut[j][i]) { gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3); } } } } else { System.err.println("QRCode content bytes length = " + contentBytes.length + " not in [ 0,120 ]. "); return -1; } Image img = ImageIO.read(new File(ccbPath));//实例化一个Image对象。 gs.drawImage(img, 55, 55, 30, 30, null); gs.dispose(); bufImg.flush(); // 生成二维码QRCode图片 File imgFile = new File(imgPath); ImageIO.write(bufImg, "png", imgFile); }catch (Exception e){ e.printStackTrace(); return -100; } return 0; }
来自网友 孤独青鸟的博客
I. java网络发送图片
和发送普通的文件没什么区别 只是取过来 显示的问题