如题,多谢,辛苦
最好需要什么类库都能给出下载的地点,
最好需要什么类库都能给出下载的地点,
解决方案 »
- 关于js的 我在提交注册信息的时候 想判断一下 账户名,密码是否为空 ?我也写了js代码 感觉应该可以实现,结果却是点击submit 不管空不空 直接写入数据库
- Servlet action is not available这个问题偶2天没解决,大侠救偶!(一个SSH的登陆系统,具体操作是附件中的DOC文档)
- 关于转换中文问题
- 救命啊~~jacob如何设置word水印文字~~
- session小问题,20分哪去!
- 关于struts标签
- 高分求教
- 请问如何显示一个时间戳
- 求救!!如何获取页面框架输入值在jsp中操作数据库!急!!
- jsp取wml文件参数的问题??急!!!!!!!
- 相同网页的tomcat下的异常???
- jsp播放视频
新一篇: Hibernate中的关联关系
1, jsp 页面的代码<%...@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<body>
<!-- encType 必不可少 -->
<form action="upImgServlet" method="post" encType=multipart/form-data>
描述:
<input type="text" name="description"/><br/>选择图片:
<input type="file" name="img"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>2, UpImgServlet 的代码.
public class UpImgServlet extends HttpServlet ...{ public void destroy() ...{
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException ...{ response.setContentType("text/html");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8"); // org.apache.commons.fileupload.DiskFileUpload 是一个开源包里的。
DiskFileUpload du = new DiskFileUpload();
du.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB
du.setSizeThreshold(4096);// 设置缓存区大小 ,4 kb;
// up 为 /WebRoot 下的 一个目录
du.setRepositoryPath(request.getSession().getServletContext()
.getRealPath("/up"));// 设置缓存目录 // 得到所有文件
try ...{
List list = du.parseRequest(request);
Iterator it = list.iterator();
while (it.hasNext()) ...{
org.apache.commons.fileupload.FileItem fileItem = (FileItem) it
.next(); // 是否为表单元素。如文本框 等等。
if (fileItem.isFormField()) ...{
String name = fileItem.getFieldName();
//通过流 用来读取表单元素里的内容。
java.io.BufferedReader br = new BufferedReader(
new InputStreamReader(fileItem.getInputStream()));
//如果还有除文件域以外的其他表单元素 就用 if()进行名字一一匹配。
if(name.equals("description"))...{
String contents = br.readLine();
System.out.println(contents);
}
}
// 文件域
else ...{
// 获得文件名,这个文件名包括路径:
String fileName = fileItem.getName();
int index = fileName.lastIndexOf('.');
fileName = fileName.substring(index);
fileName = this.getFileName() + fileName; //文件保存位置
fileItem.write(new File(request.getSession().getServletContext().getRealPath("/img")+ "\" + fileName));
System.out.println("上传成功");
}
} } catch (FileUploadException e) ...{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) ...{
// TODO Auto-generated catch block
e.printStackTrace();
} PrintWriter out = response.getWriter(); out.flush();
out.close();
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException ...{
this.doGet(request, response);
} public void init() throws ServletException ...{
// Put your code here
} // 以日期 获得一个文件名。(不重复);
String getFileName() ...{
java.util.Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR);
int mon = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DATE);
int hour = cal.get(Calendar.HOUR);
int min = cal.get(Calendar.MINUTE);
int sec = cal.get(Calendar.SECOND);
int mi = cal.get(Calendar.MILLISECOND); System.out.println("mon" + mon);
System.out.println("day" + day);
return "" + year + mon + day + hour + min + sec + mi; }}
http://blog.csdn.net/fengyifei11228/archive/2008/02/02/2077900.aspx
大家都说这样的好,想知道具体的方法,
我会加分的
import java.awt.Dimension;
import java.awt.event.*;
import javax.swing.JOptionPane;
import java.lang.String;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.*;
import java.sql.*;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.io.IOException;
import java.io.File;
import javax.imageio.*;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;.......
if(obj==btnBrowse){
JFileChooser chooser = new JFileChooser();//选择文件
ExampleFileFilter filter = new ExampleFileFilter();
filter.addExtension("jpg");
filter.addExtension("gif");
filter.setDescription("JPG & GIF Images");
chooser.setFileFilter(filter);
chooser.showOpenDialog(null);//弹出一个 "Open File" 文件选择器对话框。
String str1=chooser.getCurrentDirectory().toString();//返回当前目录
String str2=chooser.getSelectedFile().getName();//返回选中的文件
txtPhoto.setText(str1+"\\"+str2);
String strPhoto=getPath(str1+"\\"+str2);//调用getPath()方法
photoSizeShow(strPhoto);//设置图片大小并显示
}
//把路径中的"\"转化成"\\"
public String getPath(String str){
String strPh="";
for(int i=0;i<str.length();i++){
char ch=str.charAt(i);
if( ch == '\\' )
strPh=strPh+"\\"+"\\";
else
strPh=strPh+String.valueOf(ch);
}
return strPh;
}
//把图片大小变成100*130并在标签上显示
public void photoSizeShow(String str){
try{
File file=new File(str);
BufferedImage image = ImageIO.read(file);
int width = 100;
int height = 130;
double scaleWidth = (double) width / (double) image.getWidth();
double scaleHeight = (double) height / (double) image.getHeight();
BufferedImage dstImage = new BufferedImage(width, height, image.getType());
AffineTransform affineTransform = new AffineTransform();
affineTransform.scale(scaleWidth , scaleHeight);
AffineTransformOp affineTransformOp = new AffineTransformOp(affineTransform,2);
affineTransformOp.filter(image, dstImage);
Icon lconImage = new ImageIcon(dstImage);
lblPhotograph.setIcon(lconImage);
}catch(IOException e){
System.out.println(e.getMessage());
}
}
<%@ page language="java" pageEncoding="gb2312"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<html>
<head>
<title>JSP for FuForm form</title>
</head>
<body>
<html:form action="/fu.do" method="POST" enctype="multipart/form-data">
<html:file property="file"/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>imgs.jsp
<%@ page language="java" pageEncoding="gb2312"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html locale="true">
<head>
<title>imgs.jsp</title>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<img src="${namePath}" />
</body>
</html:html>error.jsp
<%@ page language="java" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html>
<head>
<title>error.jsp</title>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body style="font-size:12px">
<font color="red">${str}</font>
</body>
</html:html>FuAction.java
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
FuForm fuForm = (FuForm) form;// TODO Auto-generated method stub
Session ses = HibernateSessionFactory.getSession();
Transaction tra = ses.beginTransaction();
Imgs imgs = new Imgs();
ImgsDAO idao = new ImgsDAO();
String fu = ".jpg|.gif";
Pattern pa = Pattern.compile(fu);
FormFile ff = fuForm.getFile();
String fileName = ff.getFileName();
String pathName = "/Fu/imgs/" + fileName;
System.out.println("fileName"+fileName);
int fileSize = ff.getFileSize();
List list = idao.findByNamePath(pathName);
if(fileSize > 5000){
String str = "您上传的图片过大!";
request.setAttribute("str", str);
return mapping.findForward("error");
}else if(list.size() > 0){
String str = "您上传的图片已存在!";
request.setAttribute("str", str);
return mapping.findForward("error");
}else{
imgs.setNamePath(pathName);
idao.save(imgs);
tra.commit();
}
String fileType = ff.getContentType();
System.out.println("fileType"+fileType);
Matcher mat = pa.matcher(fileName);
if(mat.find()){
System.out.println("是否找到:"+"find");
try{
byte b[] = ff.getFileData();
String namePath = "D:\\java\\Fu\\WebRoot\\imgs\\"+fileName;
FileOutputStream fos = new FileOutputStream(namePath);
fos.write(b);
fos.close();
System.out.println("文件名:"+fileName);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}else{
System.out.println("是否找到:"+"not find");
}
System.out.println(list.size());
imgs = (Imgs) list.get(0);
System.out.println(imgs.getNamePath());
request.setAttribute("namePath", imgs.getNamePath());
return mapping.findForward("imgs");
}FuForm.java
private FormFile file;
public FormFile getFile() {
return file;
} public void setFile(FormFile file) {
this.file = file;
}数据库就两个字段
id identity(1,1)
NamePath
这里是JSP部分,哪位老大知道在这论坛里怎么发象5楼那样格式的代码的告诉俺一下哈,呵呵
<%
String strFilePath = request.getSession().getServletContext()
.getRealPath("");
//用户上传的图片路径
String strUsrImg = strFilePath + "\\Images\\PublicImg\\usrMainPage"; if (session.getAttribute("KeyType") != null) {
strKeySN = session.getAttribute("KeySn").toString();
}
if (request.getParameter("Act").equals("up")) {
com.jspsmart.upload.SmartUpload mySmartUpload = new com.jspsmart.upload.SmartUpload();
try {
mySmartUpload.initialize(pageContext);
//设置允许上传的格式
mySmartUpload.setAllowedFilesList("jpg,gif,jpeg,png,JPG,GIF,JPEG,PNG");
//设置允许上传图片的最大允许大小
mySmartUpload.setMaxFileSize(30 * 1024 * 1024);
mySmartUpload.upload();
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
//获得要上传文件在本地的路径
String filePath = myFile.getFilePathName();
File image = new File(filePath);
BufferedImage imgbuffer = ImageIO.read(image);
//获得图片的高度和宽度
int imgheight = imgbuffer.getHeight();
int imgwidth = imgbuffer.getWidth(); if (!myFile.isMissing()) {
if (imgheight != 502 && imgwidth != 835) {
out.println("<script language='javascript'>alert('只允许上传高度为502,宽度为835的图片!');</script>");
} else {
File files = new File(strUsrImg);
if (files.isDirectory()) {
File[] filesList = files.listFiles();
//保存之前先清空用户图片文件夹,此文件夹只保存一张图片
if (filesList.length != 0) {
for (int i = 0; i < filesList.length; i++) {
filesList[i].delete();
}
}
}
String ext = myFile.getFileExt(); //取得后缀名
String strFileName = "userMainPage" + "." + ext;
myFile.saveAs("/Images/PublicImg/usrMainPage/"+ strFileName,com.jspsmart.upload.SmartUpload.SAVE_VIRTUAL);
out.println("<script language='javascript'>alert('图片上传成功!');</script>");
}
} else {
out.println("<script language='javascript'>alert('图片上传失败!');</script>");
}
} catch (Exception e) {
out.println("<script language='javascript'>alert('只允许上传jpg,gif,jpeg,png格式的图片文件!');</script>");
}
}然后是HTML部分的相关代码以及对应的JS
<input type="button" class="btnButton_2char" name="bUpLoad"onclick="upload()" value="上 传" />//上传图片
function upload(){
if(document.Upload.fileup.value == ""){
alert("请选择要上传的图片!");
return false;
}
if((document.Upload.fileup.value.substring(document.Upload.fileup.value.lastIndexOf("\\") + 1)).replace(/[^\x00-\xff]/g,'**').length > 60){
alert("图片名称不能大于60个字符(30个汉字)!");
return false;
} document.Upload.bUpLoad.disabled = true;
document.Upload.action = "?Act=up&deleteSign=0&OptIP=" + SMObj.WebGetLocalIP();
document.Upload.submit();
showDiv('loading');
setTimeout("doUpload()", 5000);
}