Libération d'un fichier aprés Upload
Salut
J'ai mis en place un FileUpload pour charger des photos pour les membres de mon site.
Je m'aperçois, en dévelopant le module de désinscription, que les fichiers ne sont pas libérer aprés traitement mais je n'arrive pas àtrouver de fonction ou de paramettre pour lui indiquer qu'une fois qu'il à fini de transférer sur le serveur il doit laisser le fichier tranquille.
Vous remarquerez dans le code que je fait un truc pour faire une petite thumb de la photo chargée et je crois que c'est ce traitement là qui bloque le fichier.
Dans le bloc de code suivant je fais la suppression des photos dans mo module de désinscription et c'est lui qiu me dit que le fichier est utilisé
Donc, j'ai fini par comprendre que le fichier restait coincé le temps du TimeOut de session, soit 20 minutes par défaut.
Pouvez vous m'aider pour faire en sorte que le fichier soit libéré plus vite.
Chargement des photos
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
Protected Sub btnFileUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFileUpload.Click
If fileUp.HasFile Then
If fileUp.PostedFile.ContentType = "image/pjpeg" Then
If fileUp.PostedFile.ContentLength < 150000 Then
Try
With fileUp
.SaveAs(NomCheminPhoto)
End With
lblErrFileUpload.Text = "Photo arrivée dans votre profil"
Catch ex As Exception
lblErrFileUpload.Text = "ERREUR: " & ex.Message.ToString()
End Try
Else
lblErrFileUpload.Text = "Fichier trop lourd"
End If
Else
lblErrFileUpload.Text = "Seules les fichiers JPG sont autorisées"
End If
Else
lblErrFileUpload.Text = "Vous devez indiquer un fichier"
End If
Dim fullSizeImg As System.Drawing.Image = System.Drawing.Image.FromFile(NomCheminPhoto)
Dim dCallBack As New System.Drawing.Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback)
fullSizeImg.GetThumbnailImage(100, 75, dCallBack, IntPtr.Zero).Save(Replace(NomCheminPhoto, "ph1.jpg", "ph1t.jpg"))
AffichePhoto()
End Sub |
Suppression des photos
Code:
1 2 3 4 5 6 7 8
|
For i As Int16 = 1 To 5
Dim NomCheminPhoto As String = Server.MapPath("/App_Themes/" & GetParamSite("Nomsite") & "/PhotoMembre/" & GetUserGUID().ToString & "ph" & i & ".jpg")
If File.Exists(NomCheminPhoto) Then
File.Delete(NomCheminPhoto)
File.Delete(Replace(NomCheminPhoto, "ph" & i & ".jpg", "ph" & i & "t.jpg"))
End If
Next |
Une erreur générique s'est produite dans GDI+.
J'ai un petit peu d'info là dessus, mais je sèche un peu sévère :
J'ai un message d'erreur qui dit :
Citation:
Une erreur générique s'est produite dans GDI+.
Voici le code qui gère l'upload de l'image :
Code:
1 2 3 4 5 6 7
|
fullSizeImg = System.Drawing.Image.FromFile(NomCheminPhoto)
Dim dCallBack As New System.Drawing.Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback)
fullSizeImg.GetThumbnailImage(100, 75, dCallBack, IntPtr.Zero).Save(Replace(NomCheminPhoto, extNum, extNumt))
AffichePhoto()
fullSizeImg.Dispose()
fullSizeImg = Nothing |
et il bloque sur la ligne du GetThumbnailImage
Et en plus, en mode debug, il ne gère pas du tout mon point d'arrêt que j'ai mis deux lignes au dessus.
Une idée ?