import java.io.File;
import java.lang.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import lotus.domino.Database;
import lotus.domino.Document;
import lotus.domino.EmbeddedObject;
import lotus.domino.NotesException;
import lotus.domino.NotesFactory;
import lotus.domino.NotesThread;
import lotus.domino.RichTextItem;
import lotus.domino.Session;
import org.apache.commons.Fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import java.lang.Math;
public class FileUpLoads extends HttpServlet {
// 要上传文件的文档的id
private String unid;
// 要上传文件的文档的divid;
private String divid;
// 保存文件的服务器名
private String svrname;
// 保存文件的数据库名
private String dbname;
// 保存文件的数据库
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
单名
private String formname;
// 保存文件名的域名
private String Filename;
// 保存文件大小的域名
private String Filesize;
// 保存临时文件的路径
private String path;
private Session ss;
private Database db;
private Document doc;
private RichTextItem rtitem;
/**
* Destruction of the servlet.
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in 0log
// Put your code here
}
/**
* The doGet method of the servlet.
*
* This method is called when a form has its tag value method equals to get. *
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
// 上传附件doPost():
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload file = new ServletFileUpload(factory);
file.setSizeMax(-1);
file.setFileSizeMax(-1);
File realFile = null;
try {
// 上传文件,并解析出所有的表单字段,包括普通字段和文件字段
List list = file.parseRequest(request);
FileItem fileitem=null;
System.out.println("dd");
for (Iterator it = list.iterator(); it.hasNext();) {
Fileitem = (FileItem) it.next();
//解析表单字的普通字段,即传过来的svrname和dbname,formname,path,unid,divid参数 if (fileitem.isFormField()){ //普通表单域
String fieldname = fileitem.getFieldName(); //得到name属性的值
String value = fileitem.getString("UTF-8");
if ("svrname".equals(fieldname)){
svrname = value;
} else if ("dbname".equals(fieldname)){
dbname = value;
} else if ("formname".equals(fieldname)){
formname = value;
} else if ("unid".equals(fieldname)){
unid = value;
} else if ("divid".equals(fieldname)){
divid = value;
} else if ("folder".equals(fieldname)){
path = value;
} else if("Filename".equals(fieldname)){
filename=value;
System.out.println(filename);
}
} else if(null != fileitem.getName() && 0!= fileitem.getName().trim().length()){ //把文件大小转换成KB,MB
double size=Math.round(fileitem.getSize()/1024.0*100)/100.0;
String suffix="KB";
if(size>1000){
size=Math.round(size/1000.0*100)/100.0; suffix="MB";
}
Filesize=size+suffix;
String pa[] = path.split(".nsf/");
File mkdir = new File(pa[1]);
if (!mkdir.exists()) {
if (mkdir.mkdirs()) {
System.out.println("创建目录成功");
}
}
realFile = new File(pa[1], filename);
try {
// 写入数据
fileitem.write(realFile);
System.out.println("上传成功");
}
catch (Exception e) {
System.out.println("上传失败");
e.printStackTrace();
}
}
}
fileitem.delete();
} catch (Exception e) {
e.printStackTrace();
}
NotesThread.sinitThread();
ss = NotesFactory.createSession();
db = ss.getDatabase(svrname, dbname);
doc = db.createDocument();
doc.replaceItemValue("Form", formname);
doc.replaceItemValue("unid", unid);
doc.replaceItemValue("divid", divid);
doc.replaceItemValue("Filename", filename);
doc.replaceItemValue("filesize", filesize);
rtitem = doc.createRichTextItem("Body");//创建富文本域
rtitem.embedObject(EmbeddedObject.EMBED_ATTACHMENT, null, realFile
.getAbsolutePath(), "file"); //向rtitem富文本域插入realFile.getAbsolutePath()路径的文件
doc.save(true, true);
realFile.delete();
recycleDominoObj(); //回收垃圾(自己的方法)
} catch (NotesException e) {
e.printStackTrace();
} finally {
NotesThread.stermThread();
}
out.println("1"); //** 返回给flash的信息以便flash接受成功 **
out.flush();
out.close();
}
/**
* Initialization of the servlet.
*
* @throws ServletException
* if an error occurs
*/
public void init() throws ServletException { unid = "";
divid = "";
svrname = "";
dbname = "";
formname = "";
Filename = "";
filesize = "";
path = "";
}
// 回收Domino对象recycleDominoObj():
private void recycleDominoObj() {
try {
if (rtitem != null)
rtitem.recycle();
if (doc != null)
doc.recycle();
if (db != null)
db.recycle();
if (ss != null)
ss.recycle();
} catch (NotesException e) {
e.printStackTrace();
}
}
}
表单: