login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[C#] File upload met FTP (Opgelost)

Offline Ultimatum - 05/11/2008 14:50 (laatste wijziging 05/11/2008 14:51)
Avatar van UltimatumPHP expert Ik probeer bestanden te uploaden dmv FTP. Dit lukt wel maar ik heb nu een foto van 3MB die ik wil uploaden, hij upload wel maar krijg daarna een foutmelding (Connection unexpectedly terminated).
De code die ik nu heb zit in een loop en de eerste 13 bestanden upload hij goed maar dit bestand upload hij en geeft dan een foutmelding terug.

Weet iemand hoe ik dit kan oplossen? Of weet iemand een andere manier waarop ik (grote) bestanden kan uploaden?

  1. public void UploadFile(string FTPAddress, string directory, string filename, string username, string password)
  2. {
  3. FtpWebRequest Request = (FtpWebRequest)WebRequest.Create(FTPAddress + "/" + directory + "/" + Path.GetFileName(filename));
  4. Request.Method = WebRequestMethods.Ftp.UploadFile;
  5. Request.Credentials = new NetworkCredential(username, password);
  6.  
  7. Request.UsePassive = true;
  8. Request.UseBinary = true;
  9. Request.KeepAlive = false;
  10.  
  11.  
  12. FileStream fs = File.OpenRead(filename);
  13. int dataLength = (int)fs.Length;
  14. int buffLength = 4096;
  15. byte[] buffer = new byte[buffLength];
  16.  
  17. progressBarUpload.Value = 0;
  18. progressBarUpload.Maximum = dataLength;
  19. lbProgress.Text = "0/" + dataLength.ToString();
  20.  
  21. try
  22. {
  23. Stream strm = Request.GetRequestStream();
  24.  
  25. int bytesRead = fs.Read(buffer, 0, buffer.Length);
  26.  
  27. while (true)
  28. {
  29. if (bytesRead == 0)
  30. {
  31. progressBarUpload.Value = progressBarUpload.Maximum;
  32. lbProgress.Text = dataLength.ToString() + "/" + dataLength.ToString();
  33. lbProcentFile.Text = "100%";
  34.  
  35. Application.DoEvents();
  36.  
  37. strm.Close();
  38. fs.Close();
  39. break;
  40. }
  41. else
  42. {
  43. strm.Write(buffer, 0, bytesRead);
  44. bytesRead = fs.Read(buffer, 0, buffLength);
  45.  
  46. if (progressBarUpload.Value + bytesRead <= progressBarUpload.Maximum)
  47. {
  48. progressBarUpload.Value += bytesRead;
  49. lbProgress.Text = progressBarUpload.Value.ToString() + "/" + dataLength.ToString();
  50. int procentStap = (progressBarUpload.Value * 100) / dataLength;
  51. lbProcentFile.Text = procentStap.ToString() + "%";
  52.  
  53. progressBarUpload.Refresh();
  54. Application.DoEvents();
  55. }
  56. }
  57. }
  58.  
  59. FtpWebResponse response = (FtpWebResponse)Request.GetResponse();
  60.  
  61. // MessageBox.Show("Upload File Complete, status " + response.StatusDescription);
  62. response.Close();
  63. }
  64. catch (Exception ex)
  65. {
  66. MessageBox.Show(ex.Message + "Upload Error");
  67. }
  68. }

4 antwoorden

Gesponsorde links
Offline vinTage - 05/11/2008 17:36
Avatar van vinTage Nieuw lid Heel vaak is 2 MB het maximum wat je host toestaat, check het even met onderstaande stukkie code: (ooit ergens op php.net gevonden dacht ik)
  1. <?php
  2. function let_to_num($v){ //This function transforms the php.ini notation for numbers (like '2M') to an integer (2*1024*1024 in this case)
  3. $l = substr($v, -1);
  4. $ret = substr($v, 0, -1);
  5. switch(strtoupper($l)){
  6. case 'P':
  7. $ret *= 1024;
  8. case 'T':
  9. $ret *= 1024;
  10. case 'G':
  11. $ret *= 1024;
  12. case 'M':
  13. $ret *= 1024;
  14. case 'K':
  15. $ret *= 1024;
  16. break;
  17. }
  18. return $ret;
  19. }
  20. $max_upload_size = min(let_to_num(ini_get('post_max_size')), let_to_num(ini_get('upload_max_filesize')));
  21.  
  22. echo "Maximum upload file size is ".($max_upload_size/(1024*1024))."MB.";
  23. ?>


evt kan je verhogen met htaccess
  1. //DIT IN JE HTACCESS, maar daar was geen code blok voor
  2. php_value memory_limit 120M
  3. php_value upload_max_filesize 120M
  4. php_value post_max_size 120M

of
  1. ini_set('post_max_size', '120M');
  2. ini_set('upload_max_filesize', '120M');
Offline Abbas - 05/11/2008 19:31
Avatar van Abbas Gouden medaille

Crew .NET
Dude, het is C# en geen PHP!
Offline Ultimatum - 05/11/2008 19:33
Avatar van Ultimatum PHP expert Voor zover ik weet is er geen maximum wat je kan uploaden via C#. Ik ben er trouwens al achter dat het niet aan bovenstaand stuk code ligt maar aan een stuk waar ik data toevoeg aan de database.

Dus probleem is al opgelost .
Offline vinTage - 05/11/2008 20:53 (laatste wijziging 05/11/2008 20:56)
Avatar van vinTage Nieuw lid @titjes, Ik gaf alleen een php code om de upload van de HOST uit te lezen, GEEN oplossing voor het c# gedeelte, dus hou je verwaande opmerkingen maar voor jezelf.

En post iets nuttigs ipv die achterlijke onzin opmerking.

@ Ulti, het maakt toch geen piep uit waarmee je upload, het ging er mij om dat het mss fout kon lopen op de host.

Verder was het zetten van upload max in php wel dom van me 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s