1

誰かが文句を言う前に、私は使用しませんiframes(しかし、バグを修正しようとしているときに、問題がiframeIE9で発生している奇妙な動作に関連していることがわかり、他の誰かによってコーディングされました)。

[送信]をクリックした後にiframeに送信されるJSONがあります。

    <a id="general_Submit.Label" class="formActionLink" href="javascript:submitAndSendEmail();"/>

    <form name="fileUploader" id="fileUploader" enctype="multipart/form-data" method="post" action="ajaxFileUploadAction.action" target="upload_target">
        <input type="file" name="upload" id="upload" size="40" onchange="dynFileUploader.uploadFile(this);" onkeyup="dynFileUploader.checkValidFile(this)" />
        <iframe name="upload_target" id="upload_target" src="" onload="javascript:dynFileUploader.uploadDone();"> </iframe>
    </form>

問題

JSONは、次のアクションによって正しく返されます。

{"JSONClass":"com.lalala.process.email.util.FileContentHolder",
"contentType":"application/pdf","data":[],"fileLength":348364,
"fileName":"001a.<space>bla<space>refrigeration<space><space>-<space>aaa<space>- <space>Tenderer<space>Instructions.pdf",
"tempFileName":"C:\\Users\\humbleUser\\AppData\\Local\\Temp\\UPLOADED_7567343180347343279_001a.<space>bla<space>refrigeration<space><space>-<space>aaa<space>-<space>TendererInstructions.pdf"}

問題はファイル名にあります:単語の冷蔵の後に2つの空白がある後。このjsonをiframeに送信すると、を使用してtarget="upload_target"、これらの空白のいずれかがない状態でiframeに到着します。例えば:

次のファイルがある場合:test1.pdf、IEでは、test1.pdfとしてiframeに移動します

なぜこのような振る舞いをするのですか?もちろん、Firefoxでは発生しません。

4

1 に答える 1

1

誰もそれに直面したことがないことがわかります。これはIEの別の動作であり、連続する空白を1つだけと見なす必要があると結論付けています。このリンクでわかるように、検索中に、ファイル名の一般的な問題であることに気付きました。

とにかく、私の見解では、この質問に対する答えは、IEのバグであるということです。私は自分のバグを解決しました(ユーザーが複数の連続した空白を含むファイル名でファイルをアップロードしようとしたときに、これらの空白が1つだけに減っていたため、正しく保存されなかったので、アンダースコアの空白を置き換えることで修正しましたが、完全に機能しました!)

于 2013-03-27T14:01:31.160 に答える