いくつかの着信ファイルには、ファイルシステムで作業するときに問題の原因となるポンド記号#
があり、ファイル名から生成されたURLを使用して<img>
タグに再アクセスするという問題があります。ファイル名にシャープ記号( '#')をどのように処理するのですか?
var fileDir = "/foo/bar#s.png/";
var dirContents = fs.readdirSync(fileDir);
document.getElementById("id1").src = encodeURIComponent(path.join('cache', fileDir, dirContents[0]))
// %2Fcache%2Ffoo%2Fbar%23s.png%2Fbar%23s%2001.png :: Broken img
document.getElementById("id2").src = path.join('cache', fileDir, dirContents[1])
// /cache/foo/bar#s.png/bar#s 02.png :: Also broken img
私はディレクトリ名を管理しているが、最終的なファイル.png
sがファイルをロードし、ユーザー次第です。これらの文字を扱うにはどうすればいいですか?
明らかに、URLで使用されるファイル名には、URLハッシュとして解釈されるため、シャープ記号を使用できません。あなたは、URLをイメージに産み出させる方法を変更しなければならない、あるいはファイル名を変更する必要があります。 – adeneo
ファイルシステムとURLの両方と互換性のないこれらのファイル名を与える上流プロセスを取得して、その処理を停止します。人生はそれほど複雑である必要はありません。そのため、私はまずその問題を取り除くことをお勧めします。 – jfriend00
ファイルはアーカイブを抽出して作成されています。ディレクトリ名は元のファイル名に基づいており、抽出されたファイルは問題の原因となっています。 '# 'が見つかった場合、それぞれの' dirContents [i] 'ファイルの名前を変更するある種の名前変更関数を作成する必要がありますか?それは解決策かもしれないが、私はもっと簡単なことを望んでいる。 –