高分求助:关于文件上传

caoxmby 2003-01-20 02:28:01
要做个图片的上传,试了试smartupload,结果出了个异常。也尝试搜了几个别人的例子程序,却看得不明不白。希望各位大侠能详细介绍一下请求头,特别是涉及到文件上传的内容,希望能介绍各项内容的意义。不胜感激,感激!
...全文
28 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
d80 2003-01-20
  • 打赏
  • 举报
回复
上传例子

import java.sql.*;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.jspsmart.upload.*;
/**
* <p>Title: </p>
* <p>Description: 上\u4F20文件到\u6570据中。形式在form中加上 ENCTYPE="multipart/form-data" </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class UpLoad extends HttpServlet{
public UpLoad() {
}
private ServletConfig config;
/**
* Init the servlet
*/
final public void init(ServletConfig config) throws ServletException {
this.config = config;
}

final public ServletConfig getServletConfig() {
return config;
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("============UpLoad begin ddd=============");
String id=null;
SmartUpload mySmartUpload = new SmartUpload();
PrintWriter out = response.getWriter();
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: "+e.getMessage());
}


try{
//Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@10.216.0.2:1521:ORCL","dms","dms");

conn.setAutoCommit(false);//\u8BBE置自\u52A8提交,以提高性能。
Statement stmt=conn.createStatement();
// Initialization
mySmartUpload.initialize(config, request, response);

mySmartUpload.setMaxFileSize(500 * 1024);

// Upload
mySmartUpload.upload();

//取得text框中的\u6570据
Enumeration enumer=mySmartUpload.getRequest().getParameterNames();
while(enumer.hasMoreElements()){
String key=(String) enumer.nextElement();
String[] values=mySmartUpload.getRequest().getParameterValues(key);
if(key.equals("id")){ //得到text框中的value值
id=values[0];
}
}

//取得文件和文件名
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
String fileName=myFile.getFileName();

if(!myFile.isMissing()){
//save data
//myFile.saveAs("/upload/" + fileName);
//mySmartUpload.save("/upload/" + fileName);
myFile.saveAs(fileName,mySmartUpload.SAVE_PHYSICAL);
System.out.println("============fileName="+fileName+"====");
java.io.File file=new java.io.File(fileName);
java.io.InputStream inStream=new java.io.FileInputStream(file);

int fileSize=myFile.getSize();
byte[] bytes = new byte[fileSize];
System.out.println("============fileSize="+fileSize+"====");
//String filePath=myFile.getFilePathName();

//java.sql.Blob l_mapBlob = rs.getBlob(columnName);
//java.io.OutputStream outblob = ((oracle.sql.BLOB)l_mapBlob).getBinaryOutputStream();
/*
System.out.println("============SQL begin===========");
String strSql="insert into zyw_test(id,name,content) values(?,?,?)";
System.out.println("============SQL="+strSql);
PreparedStatement preStmt = conn.prepareStatement(strSql);
System.out.println("============preStmt begin=======");
preStmt.setString(1,"2");
System.out.println("============preStmt 1=======");
preStmt.setString(2,fileName);
System.out.println("============preStmt 2=======");
preStmt.setBinaryStream(3,is,fileSize);
//preStmt.setBytes(3, ab);
System.out.println("============preStmt 3=======");
preStmt.executeUpdate();
preStmt.close();
conn.close();
System.out.println("============SQL end===========");
*/

//\u5C06\u6570据插入到\u6570据\u5E93中
String strSql="insert into zyw_test(id,name,content) values('"+id+"','"+fileName+"',empty_blob())";
stmt.execute(strSql);

ResultSet rs=stmt.executeQuery("select content from zyw_test where id='"+id+"' for update ");
if (rs.next()){
oracle.sql.BLOB blob = ((oracle.jdbc.OracleResultSet)rs).getBLOB("content");
OutputStream outStream = blob.getBinaryOutputStream();
inStream.read(bytes);
outStream.write(bytes);
outStream.flush();
stmt.execute("commit");
outStream.close();
}
inStream.close();
stmt.close();
/*
out.println("FieldName = " + myFile.getFieldName() + "<BR>");
out.println("Size = " + myFile.getSize() + "<BR>");
out.println("FileName = " + myFile.getFileName() + "<BR>");
out.println("FileExt = " + myFile.getFileExt() + "<BR>");
out.println("FilePathName = "+myFile.getFilePathName()+"<BR>");
out.println("ContentType = " + myFile.getContentType() + "<BR>");
out.println("ContentDisp = " + myFile.getContentDisp() + "<BR>");
out.println("TypeMIME = " + myFile.getTypeMIME() + "<BR>");
out.println("SubTypeMIME = " + myFile.getSubTypeMIME() +"<BR>");
*/
out.println("upload sucess");
}else{
out.println("no file");
}
}catch(Exception ex){
out.println("upload fail");
ex.printStackTrace();
}
System.out.println("============UpLoad end=============");
}
}
xmvigour 2003-01-20
  • 打赏
  • 举报
回复
smartupload里面的例子已经很详细了

还有出现什么异常?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧