森林之原
五月 23, 2012, 09:21:55 pm *
歡迎光臨, 訪客. 請先 登入註冊一個帳號.

請輸入帳號, 密碼以及預計登入時間
新聞: 官方釋出 SMF 2.0 beta。繁體中文已經完成。請到 SMF 的版面下載測試。如有問題請通知。
 
   首頁   說明 搜尋 日曆 登入 註冊  
頁: [1]   向下
  寄送主題  |  列印  
作者 主題: 中文附件問題  (閱讀 4498 次)
0 會員 以及 2 訪客 正在閱讀本篇主題.
marvel
初學者
*
離線 離線

文章: 3


« 於: 十二月 17, 2007, 08:44:21 pm »

請問一下,
我使用SMF 1.1.4,
當我上傳一份檔案,且其檔名為中文,
可以上傳,檔名顯示也沒有問題,
但當我點選下載時,卻會出現找不到檔案的錯誤,
若附件是圖檔,當我點選放大時,也是出現找不到檔案的錯誤,
若使用英文檔名就沒有問題,在1.1.3之前也都沒這問題,
請問我該如何解決呢,謝謝。
向版主檢舉   已記錄
redbird
初學者
*
離線 離線

文章: 19


« 回覆文章 #1 於: 十二月 19, 2007, 12:21:07 am »

我的1.1.4沒這個問題
我是用utf-8
你是用哪一種編碼的?
要不要留下討論區網址讓大家找原因
向版主檢舉   已記錄
marvel
初學者
*
離線 離線

文章: 3


« 回覆文章 #2 於: 十二月 20, 2007, 02:21:40 am »

我也是用UTF-8編碼,
Server 為centOS 5,
在1.1.3的版本時沒有這問題。
試過相關的編碼處理但就是無法解決,
網址各位可至http://www.pncl.com.tw/
向版主檢舉   已記錄
redbird
初學者
*
離線 離線

文章: 19


« 回覆文章 #3 於: 十二月 20, 2007, 03:50:00 am »

有測試帳密嗎? 沒登入好像看不到附件
向版主檢舉   已記錄
marvel
初學者
*
離線 離線

文章: 3


« 回覆文章 #4 於: 十二月 21, 2007, 10:34:52 pm »

因已是正式營運的網站,若需要測試,
可能要麻煩各位自行註冊一個帳號,
註冊程序很方便,唯有email請勿留yahoo or msn,
會有寄件延遲的問題,因需要啟用帳號。
在論譠中有測試區可以進行測試,
若各位覺得麻煩,我也不好意思麻煩各位註冊,
就請忘了這問題吧… smiley01_041
« 最後編輯時間: 十二月 24, 2007, 01:47:37 am 由 marvel » 向版主檢舉   已記錄
q5089877
初學者
*
離線 離線

文章: 2


« 回覆文章 #5 於: 一月 30, 2008, 02:56:35 am »

我也有相同的問題耶,請問發問者後來解決了嗎??感謝哦...
向版主檢舉   已記錄
q5089877
初學者
*
離線 離線

文章: 2


« 回覆文章 #6 於: 二月 02, 2008, 09:12:33 am »

最後使用了下面方法來解決此一問題


打開
./sources/display.php
搜索:
程式碼:
   $filename = getAttachmentFilename($real_filename, $_REQUEST['attach']);
在下邊添加:
程式碼:
   // fix IE attachmentfilename encoding bug add by d9tx
   if(strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE') || strstr($_SERVER['HTTP_USER_AGENT'], 'Internet Explorer'))
   $real_filename=urlencode($real_filename);

編輯
Subs-Post.php

尋找
db_query("
INSERT INTO {$db_prefix}attachments
(ID_MSG, filename, size, width, height)
VALUES (" . (int) $attachmentOptions['post'] . ", SUBSTRING('" . $attachmentOptions['name'] . "', 1, 255), " . (int) $attachmentOptions['size'] . ', ' . (empty($attachmentOptions['width']) ? '0' : (int) $attachmentOptions['width']) . ', ' . (empty($attachmentOptions['height']) ? '0' : (int) $attachmentOptions['height']) . ')', __FILE__, __LINE__);
$attachmentOptions['id'] = db_insert_id();

在上面這一段文字的上方,加入下面這二行就ok了。

$a="_";
$attachmentOptions['name']=$a.$attachmentOptions['name'];


其主要功能就是在前面加入_文字,_文字也可以用其它英文代替,例如$a="A";
« 最後編輯時間: 二月 02, 2008, 09:16:05 am 由 q5089877 » 向版主檢舉   已記錄
redbird
初學者
*
離線 離線

文章: 19


« 回覆文章 #7 於: 九月 13, 2008, 10:41:01 am »

編輯
Subs-Post.php

尋找
db_query("
INSERT INTO {$db_prefix}attachments
(ID_MSG, filename, size, width, height)
VALUES (" . (int) $attachmentOptions['post'] . ", SUBSTRING('" . $attachmentOptions['name'] . "', 1, 255), " . (int) $attachmentOptions['size'] . ', ' . (empty($attachmentOptions['width']) ? '0' : (int) $attachmentOptions['width']) . ', ' . (empty($attachmentOptions['height']) ? '0' : (int) $attachmentOptions['height']) . ')', __FILE__, __LINE__);
$attachmentOptions['id'] = db_insert_id();

在上面這一段文字的上方,加入下面這二行就ok了。

$a="_";
$attachmentOptions['name']=$a.$attachmentOptions['name'];


其主要功能就是在前面加入_文字,_文字也可以用其它英文代替,例如$a="A";
謝謝q5089877兄的教學
小弟終於解決了中文檔名圖片無法顯示的問題
感恩!!
但兄的方法會使檔名前多了個字母
小弟提供一個方法
用$a="\\";
來代替
就不會有這個問題了
^^
向版主檢舉   已記錄
頁: [1]   向上
  寄送主題  |  列印  
 
前往:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Valid XHTML 1.0! Valid CSS!