当前位置:首页 » 编程语言 » 传输图片java

传输图片java

发布时间: 2023-02-11 10:52:31

java怎样上传图片(写个例子谢谢);

用struts2框架。。。马上OK。。。
在响应的ACTION中,只需要定义一个File的变量即可

㈡ Java:为什么传输图片是常用base64字符串转码,而不是直接传输byte[]呢求解

先说说base64吧:对于图片来说,一个字节占八位,如果都换成byte[]的话,会很长,不便于传输,那么就把没6个字节来对应一个新的字符(如010011是19,对应base64编码的T),,所以这个目的主要是精简数据,便于传输;
另外常用的用途是:做不严格的加密用,比如常见的磁力链接,你懂的;因为它相对于严格加密省时省力,速度快,况且可恢复(如果用MD5就不行)

㈢ java 和 c++ 通过mq传输图片数据问题

packagecn.sdeit.servlet;
importjava.io.IOException;
importjava.io.OutputStream;
importjava.io.PrintWriter;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcn.sdeit.beans.User;
importcn.sdeit.mysql.ConnectMySql;
/**
*
*/
@WebServlet(name="AddUser",urlPatterns={"/AddUser"})

{
=1L;
privatestaticStringemail;
privatestaticStringpassword;
privatestaticStringrePassword;
privatestaticStringtel;
privatestaticStringname;
privatestaticStringsex;
privatestaticStringbirthday;
privatestaticStringuniversity;
privatestaticStringmajor;
privatestaticStringsID;
privatestaticintyear;

/**
*@seeHttpServlet#HttpServlet()
*/
publicNewUser()
{
super();
}

privatestaticintjugdeRequest()
{
if(email==null||password==null||rePassword==null||tel==null||name==null||sex==null||birthday==null||university==null||major==null||sID==null||year==0)
{
return1;
}
elseif(!(password.equals(rePassword)))
{
return2;
}
else
{
return0;
}
}

privateintaddUser(Useruser)
{
Stringsql="insertintouservalues(?,?,?,?,?,?,?,?,?,?)";
Connectionconnection=ConnectMySql.createConnection();
PreparedStatementprepared=ConnectMySql.createPreparedStatement(connection,sql);
intcode=0;
try
{
prepared.setString(1,user.getEmail());
prepared.setString(2,user.getPassword());
prepared.setString(3,user.getTel());
prepared.setString(4,user.getName());
prepared.setString(5,user.getSex());
prepared.setString(6,user.getBirthday());
prepared.setString(7,user.getUniversity());
prepared.setString(8,user.getMajor());
prepared.setString(9,user.getsID());
prepared.setInt(10,user.getYear());
code=prepared.executeUpdate();
prepared.close();
connection.close();
}catch(SQLExceptione)
{
e.printStackTrace();
}
returncode;
}

protectedvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)throwsServletException,IOException
{
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");

/*
*acceptrequest
*/
email=request.getParameter("email");
password=request.getParameter("password");
rePassword=request.getParameter("repassword");
tel=request.getParameter("tel");
name=request.getParameter("name");
sex=request.getParameter("sex");
birthday=request.getParameter("birthday");
university=request.getParameter("university");
major=request.getParameter("major");
sID=request.getParameter("sid");
year=newInteger(request.getParameter("year"));
/*
**
*/

intresult=jugdeRequest();
StringerrorStrings[]=newString[]{"抱歉!</br>请返回注册页面完成所有内容之后再次提交!","抱歉!</br>密码和确认密码输入不一致,请返回注册页面重新注册!","抱歉!</br>此邮箱已经被注册请更换邮箱注册或者使用手机号找回密码!"};
Useruser=newUser(email,password,rePassword,tel,name,sex,birthday,university,major,sID,year);

PrintWriterwriter=response.getWriter();

if(result!=0)
{
writer.write(errorStrings[result-1]);
writer.flush();
writer.close();
}
else
{
result=addUser(user);
if(result!=0)
{
response.sendRedirect("./login.html");
}
else
{
writer.write(errorStrings[2]);
writer.flush();
writer.close();
}
}
}
}

㈣ java 图片上传

//1.初始化smartupload对象
SmartUpload su=new SmartUpload();
su.initialize(pageContext);

//2.定义上传文件类型
su.setAllowedFilesList("gif,jpg,doc,txt");
//3.不允许上传类型
su.setDeniedFilesList("jsp,asp,html,exe,bat");
//4.设置字符编码、
su.setCharset("UTF-8");
//5.设置的单个上传最大限制
su.setMaxFileSize(5*1024*1024);
//6.总共上传限制
su.setTotalMaxFileSize(20*1024*1024);
//7.上传
su.upload();
//su.getFiles().getCount() 获取上传数
File file=su.getFiles().getFile(0);
String filename=file.getFileName();
System.out.print(filename);
String filepath="upload\\";
filepath+=file.getFileName();
file.saveAs(filepath,SmartUpload.SAVE_VIRTUAL);

㈤ 大神们 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 传图片 只能传8k

需要做一个循环读取过程
因为你设的Buffer就是8K,而且只读了一次,当然就只能上传8k文件了。

㈦ 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方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。

㈧ 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图像传输方法

一 序列化后传输

图像对象可以编码成指定图像格式文件保存在硬盘上 需要时再对其进行解码读入内存 但是除了这样还有别的办法可以将图像对象保存在硬盘上吗?熟悉Java I/O 的人也许可以想到采用对象序列化(Object serialization) BufferedImage 提供一般图像管理

BufferedImage 对象包括另外两个对象 Raster 和 ColorModel Raster 对象包含另外两个对象 DataBuffer 和 SampleModel 不幸的是 他们都没有实现序列化所必需的 Serializable 接口 所以无法直接对他们进行对象序列化 JAI 的 dia jai remote 包里有一个类 SerializableRenderedImage 这个类实现了RenderedImage Serializable 接口 可以将 RanderedImage 对象作为构造函数的参数实例化一个可以序列化的图像对象

查看JDK的文档可以知道无论 Java D 中的 BufferedImage 还是 JAI 中的 PlanarImage 都实现了 RenderedImage 接口 也就是说所有实现自 RenderedImage

接口的对象均可作为参数包装出一个 SerializableRenderedImage 类型对象 将其序列化

下面是一个简单的例子说明了这个类的使用方法

查看复制到剪切板打印

import java io *;

import dia jai remote *;

import java awt image *;

public class SomeSerializableClass implements Serializable {

protected transient RenderedImage image;

public SomeSerializableClass(RenderedImage image) {

this image = image;

}

// Serialization method

private void writeObject(ObjectOutputStream out) throws

IOException {

out defaultWriteObject();

out writeObject(new SerializableRenderedImage(image true));

}

// Deserialization method

private void readObject(ObjectInputStream in) throws IOException ClassNotFoundException {

in defaultReadObject();

image = (RenderedImage) in readObject();

}

}

二 以字节流的方式传输

图像编码

因为图像编码解码主要目的是针对图像在网络中的传输 所以编码之后的图像不必保存在硬盘上 可以直接放入一个字节数组

查看复制到剪切板打印

public byte[] getCompressedImage(BufferedImage image){

byte[] imageData = null;

try {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

ImageIO write(image jpg baos);

imageData = baos toByteArray();

} catch (IOException ex) {

imageData = null;

}

return imageData;

}

图像解码

接收端接收到表示图像数据的字节数组后 对其进行解码 得到图像对象 因为我们在发送端将其编码成JPEG格式 所以可以直接在接收端使用ImageIO对其进行解码

查看复制到剪切板打印

public BufferedImage getDepressedImage(byte[] imageData){

try {

ByteArrayInputStream s = new ByteArrayInputStream(imageData);

return ImageIO read(s);

} catch (IOException ex) {

return null;

}

}

网络传输

lishixin/Article/program/Java/hx/201311/25572

㈩ 前端怎么传图片给后台(java)

你可以现在前台控制台打印一下base64的流,看看是否获取图片成功。如果成功再去后台看看获取的文件信息,haerd中是否有数据。
然后就是你没有后台代码,这里也不好判断是否是接收问题

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:584
制作脚本网站 发布:2025-10-20 08:17:34 浏览:878
python中的init方法 发布:2025-10-20 08:17:33 浏览:573
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:759
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:675
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1002
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:246
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:105
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:797
python股票数据获取 发布:2025-10-20 07:39:44 浏览:703