package org.servlet;
import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.entity.MailModel;
import org.mail.SendMail;
/**
* ���ձ?�����?������װ�ʼ��������÷��ͽӿ�
* @˵�� ��C�̴�����ʱ�ļ�
* @author fei.teng
* @version 1.0
* @since
*/
@SuppressWarnings("serial")
public class SendMailServlet extends HttpServlet {
@SuppressWarnings( { "unchecked", "deprecation" })
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// �������̹���
FileItemFactory factory = new DiskFileItemFactory();
// �?��
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = null;
String bgimg = "1"; // Ĭ���ǵ�һ������ͼƬ
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
MailModel mail = new MailModel();
InputStream is = null;
for (FileItem item : items) {
if (!item.isFormField()) { // ����Ǹ���
if (item.getSize() > 0) {
is = item.getInputStream();
String filename = "";
if (item.getName().indexOf("\\") == -1) {
filename = "c:\\tmp\\" + item.getName();
} else {
filename = "c:\\tmp\\" + item.getName().substring(item.getName().lastIndexOf("\\"));
}
if (is.markSupported()) {
System.out.println("û���ϴ��ļ����ļ��Ѿ�ɾ��");
} else {
File file = new File(filename);
FileOutputStream fos = new FileOutputStream(file); // ���������
byte[] buffer = new byte[8192]; // ÿ�ζ�8K�ֽڣ����ļ��ϴ�û������
int count = 0;
while ((count = is.read(buffer)) > 0) { // ѭ��д�뵽Ӳ��
fos.write(buffer, 0, count);
}
fos.close(); // �ر����������
is.close();
if (item.getFieldName().equals("ufile")) {
mail.setFilePath(filename);
} else if (item.getFieldName().equals("umusic")) {
mail.setMusicPath(filename);
}
}
}
} else { // �����ı���Ϣ
if (item.getFieldName().equals("title")) {
mail.setTitle(item.getString("UTF-8"));
} else if (item.getFieldName().equals("content")) {
mail.setContext(item.getString("UTF-8"));
} else if (item.getFieldName().equals("to")) {
mail.setTo(item.getString("UTF-8"));
} else if (item.getFieldName().equals("copy")) {
mail.setCopy(item.getString("UTF-8"));
} else if (item.getFieldName().equals("bgimg")) {
bgimg = item.getString("UTF-8");
}
}
}
String bgPath = request.getRealPath("/") + "\\images\\bg" + bgimg + ".jpg";
mail.setBgPath(bgPath);
try {
SendMail.sendMail(mail);
} catch (Exception e) {
e.printStackTrace();
}
response.sendRedirect(request.getContextPath() + "/sendmail.jsp");
}
}