① 前端使用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对象。