① 前端使用form表單提交圖片後,java後台怎麼獲取該圖片
上傳圖片 後台獲取的時候直接從資料庫拿路徑下面這是servlet的內容:package demo;import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.ProgressListener;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;public class DemoServlet extends HttpServlet {private static final String UPLOAD_DIRECTORY = "upload";private static final int MEMORY_THRESHOLD = 1024 * 1024 * 3; // 3MBprivate static final int MAX_FILE_SIZE = 1024 * 1024 * 40; // 40MBprivate static final int MAX_REQUEST_SIZE = 1024 * 1024 * 50; // 50MBprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {DiskFileItemFactory factory=new DiskFileItemFactory();ServletFileUpload sfu=new ServletFileUpload(factory);sfu.setHeaderEncoding("UTF-8");sfu.setProgressListener(new ProgressListener() {public void update(long pBytesRead, long pContentLength, int pItems) {System.out.println("文件大小為:"+pContentLength+",當前已處理:"+pBytesRead);}});//判斷提交上來的數據是否是上傳表單的數據if(!ServletFileUpload.isMultipartContent(request)){PrintWriter writer= response.getWriter();writer.println("Error:表單必須包含 enctype=multipart/form-data");writer.flush();return;}factory.setSizeThreshold(MEMORY_THRESHOLD);//設置臨時儲存目錄factory.setRepository(new File(System.getProperty("java.io.tmpdir")));//設置最大文件上傳值sfu.setFileSizeMax(MAX_FILE_SIZE);//設置最大請求值(包含文件和表單數據)sfu.setSizeMax(MAX_REQUEST_SIZE);String uploadpath=getServletContext().getRealPath("./")+ File.separator+UPLOAD_DIRECTORY;File file=new File(uploadpath);if(!file.exists()){file.mkdir();}try {List formItems = sfu.parseRequest(request);if(formItems!=null&&formItems.size()>0){for(FileItem item:formItems){if(!item.isFormField()){String fileName=new File(item.getName()).getName();String filePath=uploadpath+File.separator+fileName;File storeFile=new File(filePath);System.out.println(filePath);item.write(storeFile);request.setAttribute("message", "文件上傳成功!");}}}} catch (Exception e) {request.setAttribute("message", "錯誤信息:"+e.getMessage());}getServletContext().getRequestDispatcher("/demo.jsp").forward(request, response);}}下面是jsp的內容,jsp放到webapp下,如果想放到WEB-INF下就把servlet里轉發的路徑改一下:Insert title here前端使用form表單提交圖片後,java後台怎麼獲取該圖片?
② JAVA接收from表單提交的多圖片,怎麼點擊提交的時候一起上傳
首先,文本類的可以放在request中通過request.getAttribute(name)獲取。圖片你在前端放地址,後端也是像前面通過request.getAttribute(name)獲取後存入資料庫。這是jsp+servlet的做法。jsp有九大內置對象用於傳遞數據。而你如果用spring+springmvc的話是通過參數綁定來傳遞數據的。詳細的你可以了解框架文檔。建議你選擇一種框架可以便捷開發。jsp+servlet是比較原始的處理方式。
③ 前端批量上傳圖片後端怎麼接收
循環啊 非同步啊,直接轉換成base64傳到後台,後台循環解碼,保存在文件夾裡面不就可以了。
④ 前端實現多圖片上傳獲取到一個數組怎麼在後台接受這個數組
// 這是一個嵌入到網頁中動態顯示50是張圖片的java小應用程序,希望你對有幫助!
import java.awt.*;
import java.applet.*;
public class Picture extends Applet
{
Image[] theImages;
int nNum = 50;
int nNow = 0;
public void init()
{
theImages = new Image[nNum];
for(int i = 0; i < nNum ; i++)//將圖片裝入數組
theImages[i] = getImage(getDocumentBase(), "pic" + Integer.toString(i) + ".jpg");
}
public void start()
{
nNow = 0;
}
public void paint(Graphics g)
{
g.drawImage(theImages[nNow],500,500,this);
nNow++;
if(nNow>=nNum)
nNow = 0;
try
{
Thread.sleep(50);
}
catch(Exception e){showStatus(e.toString());}
repaint();
}
public void main()
{
Graphics g;
g=this.getGraphics ();
init();
start();
paint(g);
}
}
⑤ 關於文件上傳,前台和後台是怎麼對接的
(一)准備工作,總共需要4個文件 3個asp文件 upload.asp uploadsave.asp upload_asjob.asp 還有一個圖片上傳到文件夾uppic (一個文件夾,上傳的圖片就傳到裡面)
(二)upload.asp 這是個上傳圖片的表單
代碼如下:
Copy code <% Response.Buffer=True %>
<html>
<head>
<title>圖片上傳</title>
</head>
<body background="images/bg.gif" topmargin="30" style=""><div align="center">
<center>
<table border="1" cellspacing="1" style="border-collapse: collapse" bordercolor="#C0C0C0" width="420" id="AutoNumber69" bgcolor="#F5F5F5">
<tr>
<td width="100%" bgcolor="#F5F5F5" bordercolor="#F5F5F5"><form name="form1" method="post" action="uploadsave.asp" enctype="multipart/form-data">
<p align="center"><span style="font-size: 12px">圖片上傳:</span><br>
<br>
<INPUT type="file" class="f11" name="file1" size="23"><br>
<br>
<input type=submit name="submit" value="上傳" class=anniu >
<br>
<br>
<span style="font-size: 12px">文件格式為<font color="#EC5106">*.gif,*.jpg,*.jpeg
</font>
</span></p>
</form>
</td>
</tr>
</table>
</center>
</body>
</html>
代碼解釋:
(1)<% Response.Buffer=True %>這是控制緩沖 預設值為ture
(2)<form name="form1" method="post" action="uploadsave.asp" enctype="multipart/form-data">
這里要注意的是enctype="multipart/form-data" 一定要multipart/form-data 因為我們上傳的是圖片 不是文字 類型要與圖片匹配 <%
option explicit
dim conn,DBPath
dim rs,sql
'取得參數id
dim id
id=request("id")
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("db.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
set rs=server.CreateObject("ADODB.Recordset")
sql="select * from photo where id=" &id
rs.open sql,conn,1,1
'顯示圖片
Response.ContentType = "image/jpeg"
Response.BinaryWrite rs("img")
rs.close
'釋放對象
set rs=nothing
set conn=nothing
%>
這是顯示一張的圖片的asp源碼,相應的地方也應該需要改一改吧
sql="select * from photo where id=" &id
這里可能需要修改一下表單名,然後 where id 後面的條件也應該需要改一改
⑥ java 後台如何獲取前台上傳的幾張圖片
上傳圖片和獲取代碼如下:
package action;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class FileUploadAction extends HttpServlet implements Servlet{
public FileUploadAction()
{
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
//action請求自動跳轉到這里(配置文件配置)
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items;
try {
items = upload.parseRequest(request);//參數是HttpServletRequest對象
for (FileItem item : items){//遍歷所有客戶端提交的參數(包括文件域)
if(item.isFormField()){
String key=item.getFieldName();
String value=item.getString();
}else{
String key = item.getFieldName();//取出文件域的鍵
String value = item.getName();//取出文件域的值
long fileLen = item.getSize();//取出上傳文件的尺寸
String mimeType = item.getContentType();//取出上傳文件的類型
File f=new File("E:\\test\\");//文件地址(上傳後伺服器硬碟地址)
f.mkdirs();
item.write(new File(f+"\\"+value));//保存上傳的文件到伺服器本地
String di=f+"\\"+value;
// boolean fag= excelaction.ExcelIinput(f+"\\"+value);
response.sendRedirect("/g-ecis/excelout.do?method=ExcelIinput&di="+di);//這里是重新向(指定業務需求,其他人可以忽略刪除)
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
上傳成功後圖片是保存在Java伺服器上的。
可以直接用File file=new File("圖片上傳保存的地址");
獲取。
如果圖片只是需要上傳後直接永久顯示或者動態顯示在網頁,可以通過Java代碼傳遞圖片工程地址到頁面。頁面能直接顯示。
如果後台獲取到其他網站或伺服器上的圖片這涉及到網路編程。具體操作目前我暫時沒有用到。
⑦ web中後台怎麼通過代碼處理前台上傳圖片
改變圖片大小隻用在現實的時候,在頁面圖片標簽裡面設置大小就可以了。圖片格式的話,你可以在前天限制只能上傳什麼格式的圖片就可以了。
⑧ java後台實現接收前台上傳過來的照片存到庫里代碼怎麼寫
將文件上傳到磁碟,資料庫保存路徑和文件名
⑨ 前端怎麼傳圖片給後台(java)
你可以現在前台控制台列印一下base64的流,看看是否獲取圖片成功。如果成功再去後台看看獲取的文件信息,haerd中是否有數據。
然後就是你沒有後台代碼,這里也不好判斷是否是接收問題
⑩ 前後端分離怎麼在後端模擬文件上傳
你的文件是不是存儲在後端的? 如果是這樣的話 前端只需要寫上傳代碼, 由伺服器接收 當然你要考慮到跨域的問題 (jsonp)一般來說現在都是非同步上傳文件,請查詢FormData對象。