-1
votes

Comment puis-je charger les images de Server distant dans une gagnette C # DataTable C # une exception de 404

Comment puis-je charger les images du serveur distant dans une table de données C # Windows Formulaire? Je n'ai stocké que le chemin d'image dans ma sqldatabase. Lorsque j'exécute le code, il jette une exception de 404 error. Le même code se retrouve les images sur d'autres formulaires

capture d'écran xxx


8 commentaires

Trop large, vous n'avez pas décrit ce que vous utilisez UI vous utilisez, ou montré toute tentative de recherche.Veuillez lire Comment demander < / a>


@Thegeneral It est une winform


Stackoverflow.com/questions/17193825/...


@Thegeneral plz vérifier


Êtes-vous sûr que votre image accessible?


@nzrytmn Oui Vérifiez ce chemin d'un chemin resturantaapp.com/images/deal2.jpg


Pouvez-vous mettre à jour votre question et donner plus de détails sur votre UI et vos technologies? Les questions doivent créer selon cette ligne de guide Stackoverflow.com/help/how-to-ask .


Vous utilisez WebRequest / Webresponse dans le mauvais sens, le flux sous-jacent de bitmap, aussi. Utilisez la classe WebClient pour télécharger les images (éliminez-la après utilisation). Supprimer ceci: ServicePointManager.Expect100Continue = true; : Vous ne voulez vraiment pas qu'il soit réglé sur true ; Si vous le définissez, réglez-le sur FALSE (toujours). Gardez system.net.servicepointpointmanager.securityprotocol = SecurityProtocoltype.tls12; Si vous pensez que votre application sera utilisée dans Windows 7 (ce système, s'il n'est pas mis à jour sur le dernier rouleau de sécurité, sera-t-il par défaut à < Code> SSL3 et TLS1.0 ).


3 Réponses :


0
votes
    FileStream fs = new FileStream(imagepath, FileMode.Open, FileAccess.Read);

    //Initialize a byte array with size of stream
    byte[] imgByteArr = new byte[fs.Length];

    //Read data from the file stream and put into the byte array
    fs.Read(imgByteArr, 0, Convert.ToInt32(fs.Length));

    //Close a file stream
    fs.Close();

    //assign to dt particular column imageByteArr
Hope this will help you

2 commentaires

Error system.NotsupportedException: le format de chemin donné n'est pas pris en charge


Pouvez-vous me donner chemin que vous essayez?



0
votes

3 commentaires

Pouvez-vous me dire que datagridview est ne pas afficher les images qu'il indiquent uniquement System.Drawing.Bitmap


Hassan Jetez un coup d'oeil sur celui-ci: Stackoverflow.com/questions/16784440/...


@hassan est fonctionne maintenant? Dans Windows Form TataDridView sauf le format bitmap comme source. C'est pourquoi vous devez convertir votre webresponse en système.Drawing.bitmap.



1
votes
    Imports System 
 Imports System.Runtime.InteropServices
Imports System.Security.Principal  Imports System.Security.Permissions  Public Class Form1  <DllImport("advapi32.DLL", SetLastError:=True)> _  Public Shared Function LogonUser(ByVal lpszUsername As String, ByVal lpszDomain As String, _ 
        ByVal lpszPassword As String, ByVal dwLogonType As Integer, ByVal dwLogonProvider As Integer, _ 
        ByRef phToken As IntPtr) As Integer  End Function  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
        Dim admin_token As IntPtr 
        Dim wid_current As WindowsIdentity = WindowsIdentity.GetCurrent() 
        Dim wid_admin As WindowsIdentity = Nothing 
        Dim wic As WindowsImpersonationContext = Nothing 
        Try 

            If LogonUser("Local Admin name", "Local computer name", "pwd", 9, 0, admin_token) <> 0 Then 
                wid_admin = New WindowsIdentity(admin_token) 
                wic = wid_admin.Impersonate() 

// inside this scope you can access remote PC please note that path shouldn't contain : instead of : use $ sign
              FileStream fs = new FileStream(imagepath, FileMode.Open, FileAccess.Read);

    //Initialize a byte array with size of stream
    byte[] imgByteArr = new byte[fs.Length];

    //Read data from the file stream and put into the byte array
    fs.Read(imgByteArr, 0, Convert.ToInt32(fs.Length));

    //Close a file stream
    fs.Close();

            Else 
               //custom message
            End If 
        Catch se As System.Exception 
            Dim ret As Integer = Marshal.GetLastWin32Error() 
            MessageBox.Show(ret.ToString(), "Error code: " + ret.ToString()) 
            MessageBox.Show(se.Message) 
        Finally 
            If wic IsNot Nothing Then 
                wic.Undo() 
            End If 
        End Try  
        End Sub  
        End Class
Try this Sir please vote if its working thank you

5 commentaires

Le chemin devrait être quelque chose comme \\\ 192.168.1.123 \ d $ \ test \ test.img


amaldec23 Le code fonctionne bien, mais pouvez-vous me dire pourquoi DataGrid View n'indique pas que l'image ne montre que le système, dessin .bitmap


Dans la grille de données View image ne montrera pas en réalité que vous pouvez utiliser la commande Picturebox pour afficher la photo


Le chemin devrait être quelque chose comme: "Images \ A.BMP". (Notez l'absence d'une barre oblique de pointe, et les barres obliques étant réactivées slashes.) Et ensuite: imagebox1.Image = image.fromfile (@ "images \ a.bmp"); Essayez quelque chose comme ceci dans la zone d'image pour charger l'image d'un chemin


If (byteArrayWithImage.length> 0) puis Dim Stream comme nouveau MemorMOstream (B, TRUE) Stream.write (byTeArrayWithImage, 0, byTeArrayWithImage.length) Dim BMP en tant que nouveau bitmap (flux) Picturebox1.Image = BMP End si cela est à charger Array d'image ou d'octet à la boîte d'images