0

ボタンをクリックして画像を表示するために使用される画像コントロールがあります。コードは次のとおりです。

.aspx コード

<asp:Image ID="imgCorrect" runat="server" Height="175px" Width="150px" ImageUrl="~/_layouts/images/NoPreviewShareHR_Grey.jpg" />

<asp:FileUpload ID="FlUpldImage" runat="server" Width="200px" />

<asp:RegularExpressionValidator runat="server" ID="valUp" ControlToValidate="FlUpldImage"
ErrorMessage="Image Files Only (.jpg, .bmp, .png, .gif)" ValidationGroup="ImageFormat"
ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.jpg|.JPG|.gif|.GIF|.jpeg|.JPEG|.bmp|.BMP|.png|.PNG)$" />

<asp:Button ID="btnImageUpload" runat="server" Text="Preview" OnClick="btnImageUpload_Click" CausesValidation="false"/>

<asp:HiddenField ID="HidnLocalImageURL" runat="server" Value=""/>

C# コード

protected void btnImageUpload_Click(object sender, EventArgs e)
{
    String fileToUpload = Convert.ToString(FlUpldImage.PostedFile.FileName);
    HidnLocalImageURL.Value = fileToUpload;
    if (fileToUpload != "")
        imgCorrect.ImageUrl = fileToUpload;
    else
        imgCorrect.ImageUrl = "~/_layouts/images/NoPrview.jpg";
}

上記のコードは IE では問題なく動作しますが、Mozilla Firefox では問題が発生します。

  • 適切な画像が選択されていても、ファイル アップロードの RE バリデーターに無効な画像としてエラー メッセージが表示される
  • btnImageUploadイメージ コントロールの onclick が消えます。この問題は Firefox ブラウザでのみ発生し、IE では正常に動作します。

fileToUpload C# コードでは、ドライブ文字を含むイメージへの適切なパスが含まれています。これは画像をプレビューするためだけなので、ファイルをアプリケーションフォルダーに物理的に保存したくありません。

両方の問題を整理するのを手伝ってください。

4

2 に答える 2

0

セキュリティ上の予防措置として、リモート Web サイトからローカル コンピューター上の画像への参照は無効になっています。この制限に遭遇し、セキュリティへの影響を理解している場合は、このセキュリティ対策を無効にすることができます。

詳細については http://kb.mozillazine.org/Images_or_animations_don%27t_load

于 2012-08-08T06:05:48.067 に答える
0

FlUpldImage.PostedFile.FileName をログに記録してみてください。

Firefoxはフルパスではなくファイル名のみを送信すると思います。もしそうなら、単純なテキストボックスを使用して、ダイアログボックスなしでパスを貼り付けたほうがよいでしょう。

于 2012-08-08T06:04:00.953 に答える