今天上头不在,于是总结下做的一些东西.嘎嘎~
Form
- public class EmailForm extends ActionForm{
- private FormFile file;//附件,fileMap,value 是配合FormFile使用的
- private Map fileMap;
- private Object value;
- public EmailForm(){
fileMap = new HashMap(); //构造函数里头初始化
} - public FormFile getFile() {
- return file;
- }
- public void setFile(FormFile file) {
- this.file = file;
- }
- public Map getFileMap() {
- return fileMap;
- }
- public void setFileMap(Map fileMap) {
- this.fileMap = fileMap;
- }
- public void setValue(String attributeKey, Object attributeValue)
- {
- getFileMap().put(attributeKey, attributeValue);
- }
- public Object getValue(String attributeKey)
- {
- Object keyValue = getFileMap().get(attributeKey);
- return keyValue;
- }
- }
界面上的写法:file控件一定要写成这样~:
- <html:file property="value(file0'+upload_num+')" name="emailForm"/>
具体实现的JS:
- //添加附件
- var upload_num=0
- var card_type_handle;
- var MAX_UPLOAD_NUMBER=8;
- function add_upload()
- {
- if (upload_num>=MAX_UPLOAD_NUMBER)
- {
- alert('最多只能上传'+MAX_UPLOAD_NUMBER+'个文件');
- return ;
- }
- ++upload_num;
- tr=document.all.tbl_upload.insertRow();
- tr.insertCell().innerText="附件";
- tr.style.backgroundColor='#ffffff';
- str='
- tr.insertCell().innerHTML=str;
- upload_num_view();
- }
- function delete_upload()
- {
- document.all.tbl_upload.deleteRow(window.event.srcElement.parentElement.parentElement.rowIndex);
- upload_num--;
- upload_num_view();
- }
- function upload_num_view()
- {
- document.getElementById("upload_num_viewer").innerText=MAX_UPLOAD_NUMBER-upload_num;
- document.getElementById("acess").value=upload_num;
- }
html:两行布局:
- <tr>
- <td colspan="7">
- <input name="addAccessory" type="button" class="mybutton" style="cursor: hand;"
- id="addAccessory" value="添加附件" onClick="add_upload();">
- [提示:您能发送的邮件附件总容量最大为15M!(最多还能上传<span id='upload_num_viewer' style='color:red'>span><script>upload_num_view()script> 个)]
- td>
- tr>
- <tr id="accessory"><td colspan="7">
- <table width="100%" border="0" id="tbl_upload">
- table>
- td>tr>
java 代码:这里循环变量i的初始值为1,因为是邮件里头的附件处理
- // 附件处理
- String istr = request.getParameter("acess");
- if (istr != null) {
- for (int i = 1; i < Integer.parseInt(istr) + 1; i++) {
- FormFile ffile = (FormFile) form.getValue("file0" + i);
- String filename = ffile.getFileName();
- filename = filename.substring(filename.lastIndexOf("\\") + 1);
- try {
- ByteArrayDataSource dataSource = new ByteArrayDataSource(
- ffile.getInputStream(), null);
- email.attach(dataSource, MimeUtility.encodeText(filename),
- filename);
- } catch (Exception e) {
- System.out.println("附件处理错误:" + e);
- }
- }
- }