我使用Uploadify作爲表單的一部分。讓我給你一些背景,這可能會有所幫助。我有一個表單,用戶可以將「項目」添加到網站。首先他們輸入項目名稱和描述。在提交時,這會更新一個名爲「project」的PHP/MySQL數據庫表並給出一個ID。Uploadify JQuery和PHP/MySQL - 更改上傳文件名
用戶可以將文件上傳到服務器上的某個位置。我希望將項目名稱添加到上傳文件名的起始位置,並在上載開始前添加項目ID(我需要添加到數據庫),然後上載完成時將文件詳細信息添加到數據庫表「image」 - 通過項目ID鏈接到「項目」。
我知道我有點反彈,我需要知道如何做到這一點。兩個數據庫表要更新,一個用於表單提交,一個用於文件上傳。我需要將項目名稱和ID傳遞給uploadify上傳腳本。
SOLUTION:
我不得不使用uploadify方法下的項目ID發送到uploadify腳本,此前充滿變數pid
與mysql_insert_id
結果:
'onSelectOnce': function(event,data) {
$('#file_upload').uploadifySettings('scriptData', {'pid': pid});
}
然後我可以使用一個簡單的帖子在PHP uploadify腳本中接收pid變量:
$pid = $_POST['pid'];
就在那時運行選擇此腳本中獲得我所需要的數據庫(項目別名)的數據,並上傳前將其添加到文件名的問題:
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/' . $alias . '-';
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
希望這將有助於在人未來。
永遠不要插入`$ _POST`領域中那樣的查詢。你剛剛創建了一個SQL注入漏洞。在所有輸入上更好地使用`mysql_real_escape_string`,或者使用將值「綁定」到SQL字符串的現有數據庫API。 – vdboor 2011-01-14 10:38:46
這是一個如何去做的例子,我敢肯定他知道他應該在更新到數據庫之前清理他的數據= P – Eli 2011-01-14 10:54:10
沒關係,我不打算離開我的網站公開攻擊,這是原則我需要的代碼設置,單個語法很好:) – 2011-01-14 15:51:45