1. 怎么样在jsp页面上传图片把图片的名字如1.jpg上传到数据库,把图片保存到一个制定的文件夹里面。
在JSP页面中用"<input type="file"/> "然后用form提交到后台 得到文件名然后在servlet里面用输入输出流不就可以了。
2. 在jsp中做照片上传预览的代码
建议你使用 Web upload 组件,可图片预览, 可多选,可拖放上传,可粘贴后直接上传
网络开源产品.
俩三行代码就可以直接使用
具体网址 :
http://www.admin10000.com/document/4721.html
3. jsp+servlet 上传图片并显示出来
其实你这个挡也显示图片其实很简单的,
你的需求无非是两个
1.servlet上传文件(图片)
2.点击 浏览 图标,然后选择图片文件,然后就可以在页面中的某个地方看到图片
是这两个需求么?
首先说第二个吧。
你上传图片之后,就马上触发js函数,内容为
var PicPath = document.getElementById("yourfile").value;
document.getElementById("yourDiv").innerHTML="<IMG src="+PicPath+"/>";
OK了
第一个嘛就无所谓说了,不过我还是贴一个代码吧,
public void upLoadFile(HttpServletRequest request, HttpServletResponse response) {
PrintWriter out = null;
response.setCharacterEncoding("UTF-8");
//实例化文件工厂
FileItemFactory factory = new DiskFileItemFactory();
//配置上传组件ServletFileUpload
ServletFileUpload upload = new ServletFileUpload(factory);
try {
out = response.getWriter();
//从request得到所有上传域的列表
List<FileItem> list = upload.parseRequest(request);
for (FileItem item : list) {
//isFormField判断一个item类对象封装的是一个普通的表单字段还是文件表单字段。
// 如果item是文件域,则做出如下处理:
if (!item.isFormField()) {
//上传文件域的Name
String fileName = item.getName();
//截取扩展名
int idx = fileName.lastIndexOf(".");
String extension = fileName.substring(idx);
//获取文件名
String name = new Date().getTime() + extension;
//得到文件夹的物理路径
String path = this.getServletContext().getRealPath("\\upload");
//创建一个File
File file = new File(path + "\\" + name);
FileOutputStream o = new FileOutputStream(file);
InputStream in = item.getInputStream();
try {
LoadProcessServlet.process = 0;
LoadProcessServlet.total = 100;
LoadProcessServlet.isEnd = false;
LoadProcessServlet.total = item.getSize();
byte b[] = new byte[1024];
int n;
while ((n = in.read(b)) != -1) {
LoadProcessServlet.process+=n;
o.write(b, 0, n);
System.out.println("实际:"+LoadProcessServlet.process);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
LoadProcessServlet.isEnd = true;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
4. jsp用upload实现图片上传时图片不能显示出来(没有显示错误)
程序开发中,尽量不要使用相对路径,容易出问题。你的问题很好解决
在文件最头上添加以下代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
然后图片路径这样写
<img src="<%=basePath%>upload/<%=fileName%>" />
5. Java在jsp中 如何上传图片 在上传时可以取到图片大小并修改
用第三方工具去取 common-upload,具体取到图片的方法参考代码如下:
FileItemFactory fileItemFactory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fileItemFactory);
upload.setHeaderEncoding("utf-8");
try {
List<FileItem> items = upload.parseRequest(request);
for (FileItem fileItem : items) {
System.out.println("fileName=" + fileItem.getFieldName());
//获取文件流
InputStream in = fileItem.getInputStream();
ServletContext context = getServletConfig().getServletContext();
String path = context.getRealPath("image");
System.out.println(path);
OutputStream out = new FileOutputStream(new File(path + "\\" + fileItem.getName()));
byte[] buffer = new byte[1024];
int len = 0;
while((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.close();
in.close();
System.out.println("写入完毕");
}
} catch (FileUploadException e) {
e.printStackTrace();
}