j2ee里图片上传及预览的实现
![j2ee里图片上传及预览的实现](https://img.360docs.net/imgea/071pp365adgu22zyu74q-a1.webp)
![j2ee里图片上传及预览的实现](https://img.360docs.net/imgea/071pp365adgu22zyu74q-e2.webp)
1.预览、预览显示的大小都可以用js去做。
2.控制上传格式在页面上也可以用js做,不过在服务器端接收时要做判断;
3.控制图片尺寸?大小还是图片所占空间大小:
js 采用activX控件去读文件大小来判断;
也可以签名applet 采用客户端jre用java io去读文件大小来判断;
一、JS控制预览代码:
function img(){
var imgfile = document.getElementById('test').value;
var imgEndWith = imgfile.substr(https://www.360docs.net/doc/e612953395.html,stIndexOf("."),
imgfile.length);
var imgEndWithLower = imgEndWith.toLowerCase()
var imgEndWiths = new Array('.gif', '.jpg', '.png', '.bmp');
var imgIsTrue = false;
for ( var i = 0; i < imgEndWiths.length; i++) {
if (imgEndWithLower == imgEndWiths[i]) {
imgIsTrue = true;
break;
}
}
if(!imgIsTrue){
alert("图片格式错误");
return;
}
imageUrl=document.getElementById('test').value;
document.getElementById('image').src=imageUrl;
document.getElementById('image').height=document.getElementById('imgH').value; document.getElementById('image').width=document.getElementById('imgW').value; document.getElementById('imageDiv').style.display="block";
}
图片宽度:
图片高度:
二、所有文件类型的文件的上传:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Xiti8_4 {
/**
* @param args
* 文件字节输入、输出流方法拷贝一个文件到指定目录
*/
//拷贝的方法
void copy(File f1, File f2) {
try {
// 建立相关的字节输入流
FileInputStream fr = new FileInputStream(f1); // 通过打开一个到实际文件的连接来创建一个
// FileInputStream,该文件通过文件系统中的路径名
// f1 指定。
// 创建一个向具有指定名称的文件中写入数据的输出文件流。
FileOutputStream fw = new FileOutputStream(f2);
byte buffer[] = new byte[1]; // 声明一个byte型的数组,数组的大小是512个字节while (fr.read(buffer) != -1) { // read()从此输入流中读取一个数据字节,只要读取的结果不!=-1就执行while循环中的语句块
fw.write(buffer); //write(byte[] b)将 b.length 个字节从指定字节数组写入此文件输出流中。
}
fw.close();// 关闭此文件输出流并释放与此流有关的所有系统资源。
fr.close();
System.out.println("文件" + f1.getName() + "里的内容已拷贝到文件"
+ f2.getName() + "中!");
} catch (IOException ioe) {
System.out.println(ioe);
} catch (Exception e) {
System.out.println(e);
}
}
/*
* 拷贝前的判断 f1该文件通过文件系统中的路径名 f2新的文件通过文件系统中的路径名
fs是新的文件名称
*/
public void bcopy(File f1, File f2, String fs) {
File f3;
if (f1.exists()) {
// 判断要拷贝的文件是否存在
if (!f2.exists()) {//判f2是否存在
f2.mkdirs();// 建立相应的目录
}
f3 = new File(f2,fs);// 根据 f2 抽象路径名和 fs 路径名字符串创建一个新 File 实例
copy(f1,f3);//调用copy方法
System.out.println("上传文件相关的信息:(名字,路径,大小,最后修改的时间是:)");
getinfo(f1);
getinfo(f2);
System.out.println("上传成功后文件相关的信息:(名字,路径,大小,最后修改的时间是:)");
getinfo(f3);
} else {
System.out.println("要拷贝的文件不存在!");
}
}
//获取文件的一些信息
private void getinfo(File f1) {
// TODO Auto-generated method stub
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒");
if (f1.isFile()) {//isFile()方法是测试此抽象路径名表示的文件是否是一个标准文件。
System.out.println("文件名称:" + f1.getName());
System.out.println("文件路径:" + f1.getAbsolutePath());
System.out.println("文件大小:" + f1.length()+"字节(byte)");
System.out.println("最后修改的时间是:" + sdf.format(new
Date(https://www.360docs.net/doc/e612953395.html,stModified())));
} else {
System.out.println("上传成功后获取服务器的相关信息:");
System.out.println("目录名称:" + f1.getName());
System.out.println("文件路径:" + f1.getAbsolutePath());
File[] files = f1.listFiles();
System.out.println("此目录中有" + files.length + "个文件!");
}
System.out.println("_______________________________");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Xiti8_4 fc = new Xiti8_4();
File f1, f2, f3;
f1 = new File("E:/JAVA/Workspace/Test/src/Xiti8_4.java");
f2 = new File("E:/Datum/经典代码/上传文件");//创建新的目录名称,服务器存放文件的目录
fc.bcopy(f1, f2, "文件上传.txt");
}
}
三、用到imageio上传图片:
UploadForm apf = (UploadForm) form;
ProductMenuDTO pmdto = new ProductMenuDTO();
String image_name = apf.getImage_name();
FormFile pic = apf.getCircle_image();
// 更改文件名,取得当前上传时间的毫秒数值
Calendar calendar = Calendar.getInstance();
String image_pic_name =
String.valueOf(calendar.getTimeInMillis());
/* 产品菜单图片上传开始 */
/* 缩略图片大小circle_image1: 40*40 */
String uploadFileName =
request.getSession().getServletContext()
.getRealPath("shop\\upload\\circle_image1")
+ "\\" + image_pic_name + ".jpg";
File uploadFile1 = new File(uploadFileName);
BufferedInputStream bis = null;
Image image = null;
BufferedOutputStream bos = null;
try {
if (pic.getFileSize() < 2 * 1024 * 1024) {
bis = new BufferedInputStream(pic.getInputStream());
image = javax.imageio.ImageIO.read(bis);
int w = 40;
int h = 40;
BufferedImage bi = new BufferedImage(w, h,
BufferedImage.TYPE_INT_RGB);
bi.getGraphics().drawImage(image, 0, 0, w, h, null);
bos = new BufferedOutputStream(new FileOutputStream(
uploadFile1));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
encoder.encode(bi);
}
} catch (Exception e) {
e.printStackTrace();
}
/* 产品菜单图片上传结束 */
js实现图片上传前的预览
js实现图片上传前的预览,实现完美兼容Firefox3,IE6,IE7,IE8和IE9的显示问题 1、脚本,把下面代码加到
与之间 Js代码 1.js实现图片展示效果