1

docfile.urlサーバー上のファイル%0Dの が URL の末尾に (キャリッジ リターン) を追加しているという奇妙な問題があります。これは、手動でリンクしたファイルでのみ発生します。つまり、ディレクトリには約 1,000 個のファイルがあり、各ファイルのidandを持つ CSV ファイルを作成し、いくつかのコードを使用してfilenameそれらをデータベースに追加しました。mysql私のdjangoアプリのインターフェースリンクを介して正常にアップロードされたすべてのファイル - それらのリンクをクリックすると、ファイルが適切に開きます。

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

これらの asbuilt ファイルはすべてディレクトリにあり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ますか?それはどこから来ているのですか?

ありがとう

4

1 に答える 1

0

私の推測では、これは次のとおりです。

lines terminated by '\n'

する必要があります

lines terminated by '\r\n'

ブラウズに使用しているクライアントのために、結果は正しく「見えます」が、レコードが取得されると、まだ\r追加されています。

.strip()したがって、データベースにロードする前、またはリンクを生成する前に、それを取り除くことができます。

于 2013-04-22T05:48:55.130 に答える