當前位置:首頁 » 編程語言 » 傳輸圖片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 瀏覽:583
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:877
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:572
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:758
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:674
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1001
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:245
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:104
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:796
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:702