0

データベースからバイトを取得し、それらを画像に変換して投稿しasp:imageます。ページがローカルで適切に機能しているにもかかわらず、ページがサーバーでホストされている場合は機能しません。なぜこうなった?これも JS エラーではなく、例外である可能性が最も高いです。

エラー: gdi+ で一般的なエラーが発生しました

ASP VB.NET コード

 ds = objPicturess.GetALLPicturesByCategoryIdnCusId(dplCustomer.SelectedValue, dplCategory.SelectedValue, dtpFromDate.Date, dtpToDate.Date)
                If ds.Tables(0).Rows.Count <> 0 Then
                    For i = 0 To ds.Tables(0).Rows.Count - 1
                        Dim imageContent As Byte() = DirectCast((ds.Tables(0).Rows(i)("Picture")), Byte())
                        byteArrayToImage(imageContent, ds.Tables(0).Rows(i)("PictureTitle"), ds.Tables(0).Rows(i)("Remarks"))
                        'Response.BinaryWrite(imageContent)
                    Next
                    DataList1.DataSource = dt
                    DataList1.DataBind()
                Else
                    DataList1.DataSource = Nothing
                    DataList1.DataBind()
                End If

Public Sub byteArrayToImage(ByVal byteArrayIn As Byte(), ByVal strFile_Name As String, ByVal strRemarks As String)
        Try

            Dim newImage As System.Drawing.Image
            Dim strFileName2 As String
            strPictureTitle = ""
            strPictureTitle = strFile_Name
            strFileName = ""
            strFileName = "~/PictureGallery/" & strFile_Name & ".jpg"
            strFileName2 = Server.MapPath("~/PictureGallery/" & strFile_Name & ".jpg")
            Dim f As New IO.FileInfo(strFileName)
            If Not f.Exists Then
                Using stream As New MemoryStream(byteArrayIn)
                    newImage = System.Drawing.Image.FromStream(stream)
                    newImage.Save(strFileName2)
                End Using
            End If
            dr = dt.NewRow()
            dr("PictureTitle") = strPictureTitle
            dr("Picture") = strFileName
            dr("Remarks") = strRemarks
            dt.Rows.Add(dr)

        Catch ex As Exception
            ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "message", "alert('" + ex.Message + "');", True)
        End Try
    End Sub

ASPx コード

 <ItemTemplate>
      <asp:Label ID="Label1" runat="server" Font-Bold="True" Text ='<%# Eval("PictureTitle")%>'

         Font-Size="10pt" ForeColor="#336699" Width="100%" />
      <br /> 
     <asp:ImageMap  BorderWidth="1px" BorderColor="Black" runat="server" Height = "175px" ID="imageZoom" Width = "172px" ImageUrl= '<%# Eval("Picture")%>'   StyleFolder="styles/simple"  BigImageUrl='<%# Eval("Picture")%>'/>
     <br />
     <asp:Label ID="lblRemarks" runat="server" Font-Bold="True" Text ='<%# Eval("Remarks")%>' Font-Size="10pt" ForeColor="#336699" Width="100%" /> 

   </ItemTemplate>
4

2 に答える 2

1

IIS を介してフォルダーのセキュリティ/アクセス許可に直接アクセスできます。

  1. inetmgr を開きます (開始 > 実行 > inetmgr)。
  2. サイトを展開し、画像が書き込まれているフォルダーを右クリックします
  3. 「権限の編集」をクリックします
  4. [セキュリティ] タブに移動します
  5. 適切なアカウントを許可されたユーザーのリストに追加するか、アカウントに書き込み権限があることを確認してください。
  6. 変更を適用する
于 2013-10-07T05:51:46.677 に答える
0

IIS からフォルダーにアクセス許可を与える

于 2013-10-07T05:45:16.240 に答える