附加檔案 | 大小 |
---|---|
sequence-6.x-0.1-dev.zip | 2.11 KB |
upload_ch-5.x-1.0.zip | 4.1 KB |
upload_ch_itweak-6.x-0.1-dev.zip | 1.97 KB |
upload_ch-6.x-0.3-dev.zip | 5.59 KB |
模組介紹:
解決中文檔名上傳/下載的問題
檔案上傳時,使用序列化數字作為檔名儲存實際檔案
並將中文檔名存入資料庫
於下載檔案時透過檔案ID對應,將下載的檔案重新命名回中文檔名
避免中文檔名在程式處理以及伺服器端儲存的問題
實體檔案位址將會在 files 資料夾內另開一個 node_attach 資料夾來存放,避免序列化的檔名與 files 內的檔案同名
另外
由於 6.x 取消 db_next_id() 函式
而代替的 db_last_insert_id() 函式實際上為抓取資料表欄位的 auto_increment 值
無法用來作為單純的計數器
所以另外開發用來作為計數器的 api 模組 => sequence
使用 upload_ch 模組時必須搭配 sequence
ps1. 僅修正內容(node)附加檔案的上傳與下載的中文檔名
ps2. 檔案下載設定新增選項,啟用後會在下載路徑尾端附加中文檔名,提高路徑的可讀性
ps3. 模組內已經附上翻譯檔
ps4. 下載時會將檔名編碼為 big5,所以多語環境下不適用,編碼可以在 variable 資料表設定 upload_ch_charset 的值來變更
回應
Re: Upload_ch
哇感謝
可以用在CCK的file嗎
Re: Upload_ch
cck 的 file field 功能是獨立的
這部份需要另外改寫才行
我會找時間研究 file field 的程式
再來看要怎麼改寫
Re: Upload_ch
這東西真的是很多人需要!
有submit到Drupal.org嗎?
Re: Upload_ch
submit到Drupal.org要怎麼弄我還不清楚 囧
Re: Upload_ch
hi hom
謝謝你開發這個模組,超好用
不過,我遇到一個情況
啟用下載路徑尾端附加中文檔名
在 內容節點是正常的,下載時可以看到中文檔名
但是在Teaser view的模式下顯示附件檔案清單時,還是顯示數字ID,而非中文檔名
希望有機會能請你修補這個問題,超級感謝!!
我是用6.x版 win xp環境
Re: Upload_ch
可以請問一下 Teaser view 部份的設置嗎
是否可以提供畫面方便我參考
Re: Upload_ch
感謝回覆
我是在content type的Attachments display中設定teaser view
設定如附檔
是用simple view產生的content list
網站網址 http://www.tpeea.org.tw 請參考最新消息的下載檔
看起來是中文檔名,點閱下載時跳出來的link是數字ID
Re: Upload_ch
檢查的結果
其實是受到 itweak_upload 這個模組的功能影響
請先更新 upload_ch-6.x-0.2-dev.zip
然後下載並啟用 upload_ch_itweak-6.x-0.1-dev.zip
Re: Upload_ch
喔耶,非常感謝...
Re: Upload_ch
非常棒的模組
而且也學到hook_menu_alter的用法與時機
另外,剛在測試此模組時,發現個小問題
部分檔案類型(txt、pdf)以及下載檔案時,出現下載視窗後再取消下載然後再點下載,都會被加入drupal_not_found()的內容
測試環境是 FF 3.5.5 與 IE8 皆在 Win 7,跑本機localhost
使用upload_ch-6.x-0.2-dev.zip版本
後來發現可能是upload_ch.module的79行,不管上方執行如何,皆會return drupal_not_found()
我將它修改為
78: }else{
79: return drupal_not_found();
80: }
就比較正常了,不曉得這樣的修正是否恰當..
Re: Upload_ch
剛看了原始upload模組中的file_download() 是沒有加入else{ .... }
而是在file_transfer()的最終加exit();
我想應該兩種都可以吧
Re: Upload_ch
前輩您好:我看到你這個模組出Drupal 6的版本了,所以就花了好幾天的時間去研究如何從D5升級到D6
目前是升級成功了,但出了一些問題,可能又要麻煩前輩你出手了 @@
圖片1:升級之後去點選升級之前所發的公告,其附件在下載時只會出現編號
圖片2:升級之後所發的測試公告,點選其附件一切正常
老樣子...IE 6 XP2
Re: Upload_ch
因為 5.x 和 6.x 在檔案資料儲存的處理上不太一樣
所以在資料庫儲存中文檔名的方式也跟著不同
目前 6.x 版的安裝檔裡面還沒有加上升級程式
所以並沒有把 5.x 版本的資料轉成 6.x 版本
以下先提供手動更新的方法
1. 開啟 phpmyadmin
2. 備份 files 資料表
註:如果 5.x 版上傳檔案很多,怕之後檢查時忘記
可以執行 SELECT * FROM files AS f INNER JOIN files_ch_name AS c ON f.filename = c.cnid SQL 指令把舊資料撈出來匯出
方便之後檢查時對照
3. 執行以下 SQL 語法
UPDATE files AS f INNER JOIN files_ch_name AS c ON f.filename = c.cnid SET f.filename = c.real_name
4. 檢查下載檔名是否正常
5. 如果下載檔名都正常了,就可以把舊版的資料表 files_ch_name 資料表移除
Re: Upload_ch
感謝前輩~~
RUN了指令後果然就恢復正常了
讓我鬆了一口氣 ^^
Re: Upload_ch
想詢問研究了一下upload模組的建立資料表的部份~然後有一問題~像upload所建立的fid欄位它並不是自動dauto_increment
想詢問它是根據去join files資料表中的fid嘛~
/**
* Implementation of hook_schema().
*/
function upload_schema() {
$schema['upload'] = array(
'description' => 'Stores uploaded file information and table associations.',
'fields' => array(
'fid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'description' => 'Primary Key: The {files}.fid.',
),
Re: Upload_ch
你可以看到 upload.fid 的欄位說明:
'description' => 'Primary Key: The {files}.fid.',
也就是 fid 其實是對應 files.fid
在 files 資料表裡的 fid 才會 auto_increment
所以在 upload 資料表裡的 fid 當然不可能也用 auto_increment
Re: Upload_ch
嗯~所以其實像模組的一些關聯資料表等等~他會附上相關的欄位說明~
謝謝hom的說明
因為在想另外於別的系統中寫入資料到upload的資料表中~
但是發覺它的fid的部份是於file資料表中去auto_increment
Re: Upload_ch
各位大大:
請教一下,我安裝了upload_ch模組後,功能大致正常,唯獨上傳的txt檔案,下載下的檔案總是被加上一大段首頁的html碼....
如本來test.txt內容只有123.....下載時就變成123 加上首頁的html碼....我去Server查過files/node_attach 傳上去的檔案內容是對的(只有123),但傳下來就變成加上首頁html碼....
如果把upload_ch模組關掉,test.txt下載就正常了(內容只有123)......(可是我又需要使用upload_ch啊....)
請問有沒有人碰到跟我一樣的狀況呢?要如何處理呢?
我的drupal是6.16
server跑ubuntu9.04喔
煩請知情大大給我一點指示,謝謝啦........
Re: Upload_ch
應該跟上面 shime 所提到的狀況是一樣的吧
釋出修正過的版本 upload_ch-6.x-0.3-dev
換成新版本再試試看吧
Re: Upload_ch
OK了....謝謝hom大大囉
Re: Upload_ch
詢問~上傳後中文附檔名不見了,然後下載時也看不到中文名稱的部份
http://drupaltaiwan.org/files/images02.PNG
並且有將hom大所提供的以下模組裝上來
sequence-6.x-0.1-dev.zip
upload_ch_itweak-6.x-0.1-dev.zip
upload_ch-6.x-0.3-dev.zip
然後ps4. 下載時會將檔名編碼為 big5,所以多語環境下不適用,編碼可以在 variable 資料表設定 upload_ch_charset 的值來變更
有去variable資料表看但沒看到upload_ch_charset這個欄位
我是貝努鳥,拉之心魂,引領前往杜埃(en:Duat)的諸神之嚮導。 (死者之書錄)
Re: Upload_ch
呼~找到原因~如果有使用FileField Paths的話要移掉哦~
我是貝努鳥,拉之心魂,引領前往杜埃(en:Duat)的諸神之嚮導。 (死者之書錄)
Re: Upload_ch
你好…
因為我有安裝private upload,我發現這個模組就會失效
不知道有解決方法嗎?