public void uploadPhoto(HttpServletRequest request,
HttpServletResponse response)throws ServletException,IOException{
data=new OperationData();
SmartUpload su=new SmartUpload();
String information="您输入的数据有误,添加相片失败!";
try{
//必须实现,上传和下载的初始化工作
su.initialize(this.getServletConfig(), request, response);
//设置上传文件的大小
su.setMaxFileSize(2*1024*1024);
su.upload();
Files files=su.getFiles(); 
//获取上传文件的数目,返回值为int型
for(int i = 0; i < files.getCount(); i++) {
//获取上传单个文件
File singleFile = files.getFile(i);
System.out.println(singleFile);
String fileType = singleFile.getFileExt();
System.out.println(fileType);
String[] type={"JPG","jpg","gif","GIF","bmp","BMP"};
//binarySearch该方法用于在指定数组中查找给定的值
int place = java.util.Arrays.binarySearch(type, fileType);
String code=su.getRequest().getParameter("code");
String codeSession=(String)request.getSession().getAttribute("rand");
if(code.equals(codeSession)){
System.out.println(place);
if(place!=-1){
if(!singleFile.isMissing()){
String photoName=su.getRequest().getParameter("photoName")+i;
                                     System.out.println(photoName);
String photoType=su.getRequest().getParameter("photoType").toString();
System.out.println(photoType);
String photoTime=su.getRequest().getParameter("photoTime").toString();
System.out.println(photoTime);
String photoSize=String.valueOf(singleFile.getSize());
String filedir="savefile/"+System.currentTimeMillis()+"."
+singleFile.getFileExt();
String smailldir="saveSmaill/"+System.currentTimeMillis()+"."
+singleFile.getFileExt();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
this.doGet(request, response);
}
photoName,photoType,photoTime这三个传过来的值是中文时,System.out.println时,就成乱码了,插入数据库就成乱码了。JSP设的是UTF-8,传值过来时也是能正确显示汉字。请问这是为什么呀。急!!!!!!

解决方案 »

  1.   

    楼主用的这个包吧com.jspsmart.upload.*;
    <FORM  METHOD="POST" ACTION="../Manager/Doupimg.jsp?uid=<%=uid %>" ENCTYPE="multipart/form-data">注意ENCTYPE="multipart/form-data"必须要有,不然会出问题<%
    // 新建一个SmartUpload对象
    SmartUpload su = new SmartUpload();
    // 上传初始化
    su.initialize(pageContext);
    su.upload(); int count = su.save("/images/upload/");
    com.jspsmart.upload.File file = su.getFiles().getFile(0);
        Image img=new Image();
    img.setImgName(file.getFileName());
    img.setImgContent(content);
    img.setUid(uid);
            new DaoImageImpl().addImg(img); // 另存到操作系统的根目录为文件根目录的目录下
     file.saveAs("E:\\MyACCPClass\\WebRoot\\images\\upload\\" + file.getFileName());
    }
     out.print("<script>alert('上传图片成功!');window.location.href='../img/ShowImg.jsp'</script>");
     
    %>