動態多附件上傳 經典解決方案

2021-08-22 17:30:48 字數 2967 閱讀 5604

動態多附件上傳

----

經典解決方案

動態多附件上傳,在目前的b/s

系統中經常會遇到這方面的需求,基於開源的理念,在此我把幾個解決方案做詳細的介紹。目的在於提高自己的描述問題的能力,同時給遇到同樣問題的朋友提供一些線索,以便節省寶貴時間。

上次專案是做乙個

** 管理系統,其中有乙個模組是作品發布,作品發布模組就需要實現這樣乙個功能:

新建乙個作品,作品包含一些基本的資訊,而且要求要有乙個或多個附件,每個附件又要求有作品概要(即作品附件和作品概要一一對應)。

系統要求用

struts

來實現。

在討論解決方案之前,首先要了解的是。在客戶端請求伺服器時提交表單,表單的內容只能為string

型和formfile

型(formfile

型別只有在struts

中才有),不能提交自己定義的dto

物件。但是可以提交自己定義的dto

中的string

成員和formfile

成員。

了解了這個原理之後,我開始闡述第一種解決方案;

第一種解決方案:間接動態多附件上傳

基本思路:定義乙個

productform 類

class  productform extends  actionform 在

jsp 頁面上用相關的標籤定義作品的字段; 如:

動態多附件則用普通標籤實現,沒有在

productform

中定義相應的字段。因此,

action

取值也不能直接從

actionform

中取值,因為

actionform

中根本沒有相應的成員。

jsp 部分:

<

table id=

'mytable'

>

<

tr><

td>

td>

tr>

table

>

<

html:button

value="

新增新附件

" styleclass

="btn"

onclick

="add_row(mytable);"

property

="add_newfile"

/>

動態新增附件域在jsp中的**是:

var

i = 0;

function

add_row(the_table)   

{ //

動態增加一行,

實際上也就是增加乙個**

var   

the_row,the_cell;  

var   

cur_rows=the_table.rows.length;

the_row=cur_rows==

null

?-1:(cur_rows);

//   var    i=the_row;    

var   

newrow=the_table.insertrow(i);

//得到插入位置

newrow.id = i;

the_cell=newrow.insertcell(0);

the_cell.innerhtml=

""  +

"" + "<%=

constants.res_new_file_parameter_name

%>

"+i+

"' name='

<%=

constants.res_new_file_parameter_name

%>

"+i+

"' type='file'  οnchange='filetypecheck(this);'  οnpaste='return   false'   οnkeypress='return   false'  οnkeydοwn='return  false' οncοntextmenu='return  false;'>" +

"刪除此域

' οnclick='del("

+i+");'>" +

"" + "" +

"檔案概要說明

[<=50漢字

]" +

" "

+ "" +

"" + "" +

"" + " "

Discuz 論壇出現附件問題的解決方案

附件問題大多都是論壇不能上傳附件 或者上傳後看不見 或者超過一定尺寸就不能上傳等。綜合起來,你可以考慮以下幾種型別 1.伺服器php配置問題 php預設配置 php.ini 對於附件的大小限制是2m vim etc php.ini upload max filesize 2m 這裡可以改大一些,比如...

github誤將密碼上傳解決方案

今天發現一不小心把學號和密碼上傳到了github。雖然說是0 folk和0 star,但是畢竟是敏感資訊,萬一我還沒畢業前發達了怎麼辦。參考了一些部落格的解決方案,發現csdn大多數都是複製貼上的解決方案。根本沒用。最開始的時候嘗試直接更改之後提交,就是在本地修改原始檔,然後git add a gi...

上傳大檔案解決方案技術

php用超級全域性變數陣列 files來記錄檔案上傳相關資訊的。1.file uploads on off 是否允許通過http方式上傳檔案 2.max execution time 30 允許指令碼最大執行時間,超過這個時間就會報錯 3.memory limit 50m 設定指令碼可以分配的最大記...