2013-04-22 68 views
1

我有一個奇怪的問題,其中我們的服務器上的文件的docfile.url正在將%0D(回車)添加到URL的末尾。這隻發生在我手動鏈接的文件上。我的意思是,目錄中有大約1,000個文件,我創建了一個CSV文件,其中包含每個文件的idfilename,並使用一些代碼將它們添加到mysql數據庫。通常通過我的django應用程序界面鏈接正常上傳所有文件 - 單擊它們的鏈接可正常打開文件。django - docfile將%0D添加到url?

下面是CSV文件的樣本:

792,asbuilts/C0010.pdf 
793,asbuilts/C0011.pdf 
794,asbuilts/C0012.pdf 
795,asbuilts/C0013.pdf 
796,asbuilts/C0014.pdf 
797,asbuilts/C0015.pdf 
798,asbuilts/C0016.pdf 
799,asbuilts/C0017.pdf 

我在目錄中有static_media/asbuilts/所有這些竣工檢查文件。在MySQL我跑這個命令:

load data local infile '/srv/www/cpm/CPM_CSV_Files/comm_asbuilts.csv' into table systems_asbuilt fields terminated by ',' lines terminated by '\n' (id, docFile); 

select * from systems_asbuilt樣本輸出是這樣的:

|846 | asbuilts/C0057.pdf 
|847 | asbuilts/C0059.pdf 
|848 | asbuilts/C0060.pdf 
|849 | asbuilts/C0061.pdf 
|850 | asbuilts/C0062.pdf 
|851 | asbuilts/C0063.pdf 
|852 | asbuilts/C0064.pdf 

一切看起來不錯吧?

但是,當我看鏈接創建它看起來像這樣:

`www.ourdomain.com/static_media/asbuilts/R0546.pdf%0D' 

如果我手動刪除鏈接%0D,文件打開預期。任何想法爲什麼有額外的%0D在那裏?它來自哪裏?

感謝

+0

什麼是您的操作系統? Windows使用'CR LF'('0D 0A')作爲行尾; Linux和Mac OS X使用'LF'('0A')。 – michaelb958 2013-04-22 00:21:48

+0

該網站在Ubuntu Linux服務器上運行。我正在關注Mac上的鏈接 - 但我不認爲客戶端是問題,我會假設它是服務器端。 – Garfonzo 2013-04-22 04:52:40

回答

0

我的猜測是,這:

lines terminated by '\n'

應該

lines terminated by '\r\n'

你的結果 「看起來」 正確的,因爲你正在使用的客戶端瀏覽它,但是當記錄被檢索時,它仍然附有\r它。

因此,在生成鏈接之前,您可以在將其加載到數據庫或.strip()之前將其去除。

+0

啊,是的,我記得在別的地方出現過我的問題。我必須在鏈接上使用'.strip()',因爲(如果我理解正確的話)對於那些末尾沒有'\ r'的鏈接來說不會有問題。謝謝你的提示。 – Garfonzo 2013-04-23 05:44:26