java中图片上传源码(Java 图片上传)
本文目录一览:
- 1、解释一下这段JAVA 关于图片上传的代码
- 2、上传图片的java代码
- 3、java实现图片上传至服务器并显示,如何做?希望要具体的代码实现
- 4、求一个java图片上传代码,不在jsp中实现,jsp中只是获得图片的路径,其他操作全在类中操作,求详细代码
解释一下这段JAVA 关于图片上传的代码
private File file;
private String fileFileName;
private String picture;
//都有getter 和 setter
InputStream is = new FileInputStream(file);
//引入一个IO流的输入流
String root = ServletActionContext.getRequest()
.getRealPath("/bookpicture");
//通过REQUEST来得到相对地址,并在后面加上/bookpicture
File f = new File(root, this.getFileFileName());
//定义一个FILE文件,第一个参数是文件的路径,第二个是文件的名字
picture="."+"\\"+"bookpicture"+"\\"+this.getFileFileName();
//为PICTURE字符串赋值,/地址/文件名
System.out.println
("======picture====="+picture);
//从控制台输出Picture
OutputStream os = new FileOutputStream(f);
//第一个文件的输出流
byte[] buffer = new byte[1024];
//定义一个bufer的字符串,长度为1024
int len = 0;
while ((len = is.read(buffer)) 0) {
//如果从制定文件中读取到的信息为结束就继续循环
os.write(buffer, 0, len);
//将文件读出的内容写入到指定的文件中
}
上传图片的java代码
呵呵,今天我正好做了这样一个程序....
要上传图片,首先要创建一个ImageIcon对象
ImageIcon objimageIcon = new ImageIcon("URL",String);//两个参数分别表示你要上传的图片的地址和说明
然后将objimageicon添加到页面的一个对象就可以了
for example:
lblobj.add(objimageIcon);
java实现图片上传至服务器并显示,如何做?希望要具体的代码实现
很简单。
可以手写IO读写(有点麻烦)。
怕麻烦的话使用FileUpload组件 在servlet里doPost嵌入一下代码
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
//设置保存上传文件的目录
String uploadDir =getServletContext().getRealPath("/up");
System.out.println(uploadDir);
if (uploadDir == null)
{
out.println("无法访问存储目录!");
return;
}
//根据路径创建一个文件
File fUploadDir = new File(uploadDir);
if(!fUploadDir.exists()){
if(!fUploadDir.mkdir())//如果UP目录不存在 创建一个 不能创建输出...
{
out.println("无法创建存储目录!");
return;
}
}
if (!DiskFileUpload.isMultipartContent(request))
{
out.println("只能处理multipart/form-data类型的数据!");
return ;
}
DiskFileUpload fu = new DiskFileUpload();
//最多上传200M数据
fu.setSizeMax(1024 * 1024 * 200);
//超过1M的字段数据采用临时文件缓存
fu.setSizeThreshold(1024 * 1024);
//采用默认的临时文件存储位置
//fu.setRepositoryPath(...);
//设置上传的普通字段的名称和文件字段的文件名所采用的字符集编码
fu.setHeaderEncoding("gb2312");
//得到所有表单字段对象的集合
List fileItems = null;
try
{
fileItems = fu.parseRequest(request);//解析request对象中上传的文件
}
catch (FileUploadException e)
{
out.println("解析数据时出现如下问题:");
e.printStackTrace(out);
return;
}
//处理每个表单字段
Iterator i = fileItems.iterator();
while (i.hasNext())
{
FileItem fi = (FileItem) i.next();
if (fi.isFormField()){
String content = fi.getString("GB2312");
String fieldName = fi.getFieldName();
request.setAttribute(fieldName,content);
}else{
try
{
String pathSrc = fi.getName();
if(pathSrc.trim().equals("")){
continue;
}
int start = pathSrc.lastIndexOf('\\');
String fileName = pathSrc.substring(start + 1);
File pathDest = new File(uploadDir, fileName);
fi.write(pathDest);
String fieldName = fi.getFieldName();
request.setAttribute(fieldName, fileName);
}catch (Exception e){
out.println("存储文件时出现如下问题:");
e.printStackTrace(out);
return;
}
finally //总是立即删除保存表单字段内容的临时文件
{
fi.delete();
}
}
}
注意 JSP页面的form要加enctype="multipart/form-data" 属性, 提交的时候要向服务器说明一下 此页面包含文件。
如果 还是麻烦,干脆使用Struts 的上传组件 他对FileUpload又做了封装,使用起来更傻瓜化,很容易掌握。
-----------------------------
以上回答,如有不明白可以联系我。
求一个java图片上传代码,不在jsp中实现,jsp中只是获得图片的路径,其他操作全在类中操作,求详细代码
public boolean copyPic(File file, String path) {
FileInputStream fi = null;
BufferedInputStream in = null;
FileOutputStream fo = null;
BufferedOutputStream out = null;
boolean bb = true;
try {
fi = new FileInputStream(file);// 原图
in = new BufferedInputStream(fi);// 读入缓存
File desFile = new File(path);
fo = new FileOutputStream(desFile, false);// 新图,如果是true就不会覆盖原图,如果false就覆盖
out = new BufferedOutputStream(fo);
byte[] buf = new byte[1024];
int len = in.read(buf);// 读文件,将读到的内容放入到buf数组中,返回的是读到的长度
while (len != -1) {
out.write(buf, 0, len);
len = in.read(buf);
}
} catch (Exception e) {
bb = false;
System.out.println("copy出错1...");
} finally {
try {
out.close();
fo.close();
in.close();
fi.close();
System.out.println("复制图片成功!");
} catch (IOException e) {
bb = false;
System.out.println("关闭图片出错2...");
}
}
return bb;
}
你很幸运,我刚刚写过的