Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1266 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  envoyer un fichier en methode POST

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

envoyer un fichier en methode POST

n°1631963
F A Z Z
Posté le 26-10-2007 à 19:58:41  profilanswer
 

Bonjour,
 
 je dois automatiser l'envoi de fichiers (videos) vers cette addresse: http://upload.youporn.com/ dans un programme .NET
 
step1 envoi la form vers step1.php.  
step1.php est rechargé avec le code html suivant  
 
 

Code :
  1. <form action="/upload/step2" method="post" enctype="multipart/form-data" onsubmit="show_progress(); return true;">
  2.                      ....
  3.       <td><p><input class="url" name="file" type="file" /></p></td>
  4.               ....
  5.     <fieldset style="text-align: center;" class="nolegend">
  6.      <input class="submit" value="Upload" type="submit">
  7.     </fieldset>
  8.     <input type="hidden" name="title" value="titlezzz" />
  9.     <input type="hidden" name="type" value="straight" />
  10.     <input type="hidden" name="description" value="description" />
  11.     <input type="hidden" name="tags" value="tags ff" />
  12.     <input type="hidden" name="email" value="ff@example.com" />
  13.     <input type="hidden" name="usview" value="no" />
  14.     <input type="hidden" name="site_name" value="" />
  15.     <input type="hidden" name="site_url" value="http://" />
  16.    </form>


 
le submit envoi le tout vers step2.php
Jessai donc d'envoyer tout directement à step2.php (puisque step 1 ne fait que recupérer les valeurs des champs et  les mettres en dans des input type="hidden" )
 
Le probleme est que la reponse serveur apres l'upload est la page /step1 avec les champs du formulaire remplis (avec un cadre <div class="error"> vide... comme si javais oublier un parametre) au lieu de step2.php (upload completed)
 
Ce n'est pas un probleme de cookies puisque on peu envoyer des videos avec les cookies desactivés
Jaimerai comprendre dou vien le probleme
 
voici mon code .NET
 

Code :
  1. Dim content_type As String = "video/mpeg"
  2.         querystring("file" ) = "filename=" & Chr(34) & upf._Fullpath & Chr(34) & " " & "Content-Type: " & content_type
  3.         querystring("title" ) = upf._title
  4.         querystring("type" ) = upf._Genre
  5.         querystring("description" ) = upf._Desc
  6.         querystring("tags" ) = upf._Tags
  7.         querystring("email" ) = upf._Email
  8.         querystring("usview" ) = "yes"
  9.         querystring("site_name" ) = upf._SiteName
  10.         querystring("site_url" ) = upf._SiteUrl
  11.         w.QueryString = querystring
  12.         w.Encoding = System.Text.Encoding.UTF8
  13.         Dim userAgent As String = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
  14.         Dim accept As String = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*"
  15.         Dim accept_encoding As String = "gzip, deflate"
  16.         lbl_currentfile.Text = upf._title
  17.         w.Headers.Add(HttpRequestHeader.AcceptEncoding, accept_encoding)
  18.         w.Headers.Add(HttpRequestHeader.AcceptLanguage, "fr" )
  19.         w.Headers.Add(HttpRequestHeader.CacheControl, "no-cache" )
  20.         w.Headers.Add(HttpRequestHeader.KeepAlive, "true" )
  21.         w.Headers.Add(HttpRequestHeader.ContentType, content_type)
  22.         w.Headers.Add(HttpRequestHeader.Referer, YOUPORNURLS.PORN_UPLOAD_REFERER)
  23.         w.Headers.Add(HttpRequestHeader.UserAgent, userAgent)
  24.         w.UploadFileAsync(New Uri(YOUPORNURLS.PORN_UPLOAD), "POST", upf._Fullpath)


Message édité par F A Z Z le 26-10-2007 à 20:07:54
mood
Publicité
Posté le 26-10-2007 à 19:58:41  profilanswer
 

n°1633930
F A Z Z
Posté le 30-10-2007 à 15:35:36  profilanswer
 

bon bein obliger de se débrouiller... pour ceux ke sa intersse jai fait comme sa et sa marche
 

Code :
  1. Public Class UploadFormFile
  2.     Public Shared Function PrepareDatasToSend(ByVal filepath As String, ByVal fileFormName As String, ByVal contenttype As String, ByVal querystring As Specialized.NameValueCollection, ByVal boundary As String) As Byte()
  3.         If (fileFormName Is Nothing) OrElse (fileFormName.Length = 0) Then
  4.             fileFormName = "file"
  5.         End If
  6.         If (contenttype Is Nothing) OrElse (contenttype.Length = 0) Then
  7.             contenttype = "application/octet-stream"
  8.         End If
  9.         Dim Startboundary As New System.Text.StringBuilder()
  10.         Startboundary.Append("--" )
  11.         Startboundary.Append(boundary)
  12.         Startboundary.Append(vbCrLf)
  13.         Startboundary.Append("Content-Disposition: form-data; name=""" )
  14.         Startboundary.Append(fileFormName)
  15.         Startboundary.Append("""; filename=""" )
  16.         Startboundary.Append(filepath)
  17.         Startboundary.Append("""" )
  18.         Startboundary.Append(vbCrLf)
  19.         Startboundary.Append("Content-Type: " )
  20.         Startboundary.Append(contenttype)
  21.         Startboundary.Append(vbCrLf)
  22.         Startboundary.Append(vbCrLf)
  23.         'ajoute les paires nom/valeurs
  24.         Dim Endboundary As New System.Text.StringBuilder()
  25.         If querystring IsNot Nothing Then
  26.             Endboundary.Append(vbCrLf)
  27.             For Each key As String In querystring.Keys
  28.                 Endboundary.Append("--" & boundary)
  29.                 Endboundary.Append(vbCrLf)
  30.                 Endboundary.Append("Content-Disposition: form-data; name=" & Chr(34) & key & Chr(34))
  31.                 Endboundary.Append(vbCrLf)
  32.                 Endboundary.Append(vbCrLf)
  33.                 Endboundary.Append(querystring.[Get](key))
  34.                 Endboundary.Append(vbCrLf)
  35.             Next
  36.         End If
  37.         Endboundary.Append("--" & boundary)
  38.         Endboundary.Append(vbCrLf)
  39.         Dim postHeader As String = Startboundary.ToString()
  40.         Dim postHeaderBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(postHeader)
  41.         Dim postFooter As String = Endboundary.ToString
  42.         Dim postFooterBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(postFooter)
  43.         Dim fileBytes() As Byte = My.Computer.FileSystem.ReadAllBytes(filepath)
  44.         Dim lenght As Integer = postHeaderBytes.Length + fileBytes.Length + postFooterBytes.Length - 1
  45.         Dim dataPaquet(lenght) As Byte
  46.         Array.Copy(postHeaderBytes, dataPaquet, postHeaderBytes.Length)
  47.         Array.Copy(fileBytes, 0, dataPaquet, postHeaderBytes.Length, fileBytes.Length)
  48.         Array.Copy(postFooterBytes, 0, dataPaquet, fileBytes.Length + postHeaderBytes.Length, postFooterBytes.Length)
  49.         Return dataPaquet
  50.     End Function
  51. End Class


 

Code :
  1. Sub BeginUpload()
  2.  dim w as new webclient
  3.         Dim querystring As New Specialized.NameValueCollection()
  4.  'ajouter les champs du formulaire
  5.         querystring("nom" ) = valeur
  6.         w.Encoding = System.Text.Encoding.UTF8
  7.    
  8.  'preparer l'entete de la requete
  9.         Dim userAgent As String = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
  10.         Dim accept As String = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*"
  11.         Dim accept_encoding As String = "gzip, deflate"
  12.         Dim accept_charset As String = "ISO-8859-1,utf-8;q=0.7,*;q=0.7"
  13.        
  14.         Dim boundary As String = "---------------------------" + DateTime.Now.Ticks.ToString("x" )
  15.         w.Headers.Add(HttpRequestHeader.AcceptEncoding, accept_encoding)
  16.         w.Headers.Add(HttpRequestHeader.AcceptLanguage, "fr" )
  17.         w.Headers.Add(HttpRequestHeader.CacheControl, "no-cache" )
  18.         w.Headers.Add(HttpRequestHeader.KeepAlive, "true" )
  19.         w.Headers.Add(HttpRequestHeader.ContentType, "multipart/form-data; boundary=" & boundary)
  20.         w.Headers.Add(HttpRequestHeader.Referer, YOUPORNURLS.PORN_UPLOAD_REFERER)
  21.         w.Headers.Add(HttpRequestHeader.UserAgent, userAgent)
  22.         w.Headers.Add(HttpRequestHeader.Accept, accept)
  23.         w.Headers.Add(HttpRequestHeader.AcceptCharset, accept_charset)
  24.  dim filePath as string = "c:\exemple.mpg"
  25.  dim MIMEtype as string = "video/mpeg" ' faire une methode pour determiner le mime type
  26.         Dim datas() As Byte = UploadFormFile.PrepareDatasToSend(filePath, "",MIMEtype, querystring, boundary)
  27.         w.UploadData(New Uri("http://localhost/Upload.php" ), "POST", datas)
  28. end sub

n°1634302
MagicBuzz
Posté le 31-10-2007 à 08:38:38  profilanswer
 

YOUPORNURLS.PORN_UPLOAD_REFERER => skoi ce truc ? :lol:
 
Sinon, pourquoi dans ton premier post tu écrit dans querystring ? Pas tout capté ce que tu faisais. Normalement c'est readonly QueryString (enfin... pas persistant en tout cas, donc pas trop de raison d'écrire dedans)
 
Et enfin, pourquoi ne pas passer par la classe System.Net.WebClient ?
=> C'est comme chez Casto, y'a tout s'ky faut.

n°1650065
F A Z Z
Posté le 28-11-2007 à 10:18:16  profilanswer
 

La class web client ne permet pas d'envoyer des infos genre nom/valeur ou des cookies
Querystring c'est pas readonly. Elle sera concaténé à l'addresse URL au moment de lenvoi

n°1650067
Taz
bisounours-codeur
Posté le 28-11-2007 à 10:22:27  profilanswer
 

Fazz t'es mon héro

n°1860815
toti3221
Posté le 12-03-2009 à 17:01:12  profilanswer
 

Ce code je le cherche ça fait longtemps  
mais :( je n'arrive pas à le faire executé  
c'est quoi le problème !!!!!!!!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  envoyer un fichier en methode POST

 

Sujets relatifs
Web Service et Envoie de fichier ACCESS ajout de données par fichier independant
Incrémenter un fichier[VBS] écrire dans un fichier
Vérifier la présence d'un fichier à partir d'un masque[ACCESS] Développer à plusieurs sur le même fichier
comment lire un fichier audio mp3 ou wav avec c++ ?Uploader un fichier sans passer par Parcourir
Stdou redirigé vers un fichier mais quand meme affiché sur la console?Erreur: undefined reference to `seek' (Modification fichier bmp)
Plus de sujets relatifs à : envoyer un fichier en methode POST


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR