C# - File Upload to Server – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# - File Upload to Server – .NET – Fórum – Programujte.comC# - File Upload to Server – .NET – Fórum – Programujte.com

 

Jirka
~ Anonymní uživatel
305 příspěvků
4. 9. 2012   #1
-
0
-

 Ahoj

Moc vás prosím jsem začátečník v C# a chtěl bych pomoct od zkušenějších mám tento kód (viz. zdroják) pro nahraní souboru na FTP ale soubor musím pojmenovat vždy test.txt a až potom se mi nahraje chtěl bych ten program vylepšit tím že bych chtěl přidat pole a tlačítko procházet kde by se v počítači vybral soubor a potom nahrál na FTP a pod tlačítkem odeslat soubor bych chtěl PorgressBar (viz. obrazek) http://2i.cz/f6900d27f4

Prosím vás jestli by někdo neporadil (spíše napsal zdrojak) jak to udělat jak píšu jsem začátečník a vůbec netuším jak se co dělá tak prosím někoho hodného. Děkuji     

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml.Schema;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;

namespace goodFTP
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {

        }
        private void button1_Click(object sender, EventArgs e)
        {
            Upload(@"app/test.txt");
        }
        public void Upload(string fileToUpload)
        {
            try
            {
                FileInfo toUpload = new FileInfo(fileToUpload);
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://mujserver.cz" + toUpload.Name);
                request.Method = WebRequestMethods.Ftp.UploadFile;
                request.Credentials = new NetworkCredential("Jmeno", "Heslo");
                Stream ftpStream = request.GetRequestStream();
                FileStream file = File.OpenRead(fileToUpload);
                int length = 1024;
                byte[] buffer = new byte[length];
                int bytesRead = 0;
                do
                {
                    bytesRead = file.Read(buffer, 0, length);
                    ftpStream.Write(buffer, 0, bytesRead);
                }
                while (bytesRead != 0);
                file.Close();
                ftpStream.Close();
            }
            catch
            {
                MessageBox.Show("Uspesne odeslano");
            }
        }

    }
}
Nahlásit jako SPAM
IP: 94.113.174.–
Chrasty
~ Redaktor
+4
Posthunter
4. 9. 2012   #2
-
0
-

#1 Jirka
Ahoj, zdroják ti sice nenapíšu, ale poradit můžu:) Mrkni se na třídu OpenFileDialog, ta reprezentuje to okýnko, ve kterém si vybíráš soubor. Pokud děláš ve WinForms, tak se mrkni tady http://msdn.microsoft.com/cs-cz/library/61097ykx.aspx

Co se ProgressBaru týče... ono to není těžké, ale je to trochu pokročilejší látka. Chceš dělat dvě věci najednou (nahrávat soubor na FTP a aktualizovat stav ProgressBaru), to znamená, že budeš muset použít vlákna. K tomuto účelu se hodí třída BackgroundWorker, které se věnuje jeden z mých článků - http://programujte.com/clanek/2008091400-vlakna-v-c-7-dil/

Kdybys chtěl vidět nějaký kód, tak tady. Je ale otázka, jestli má cenu si zatím vlákny plést hlavu, když jsi začátečník, jak říkáš:) http://stackoverflow.com/questions/6341024/how-can-we-show-progress-bar-with-ftpwebrequest

Nahlásit jako SPAM
IP: 193.179.196.–
ingiraxo+15
Grafoman
5. 9. 2012   #3
-
0
-

místo BW bych spíš použil normální async způsob (ukázku mám  pro download, ale není problém to předělat na upload)

        private async Task DownloadFile(string urlFile, string localFile)
        {
            using (WebClient wc = new WebClient())
            {
                // vykoná se vždy při přijmu bufferu
                wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler((o, e) =>
                {
                    // aktualizace v ProgressBaru
                    double perc = 100.0 / e.TotalBytesToReceive;
                    bar.Value = (int)(perc * e.BytesReceived);
                });
                // spustí asynchronní stahování
                wc.DownloadFileAsync(new Uri(urlFile), localFile);
            }
        }

jen ještě dodám, že to je kompletně ThreadSafe, takže nemůže nastat CrossThread mezi hlavním vláknem a stahováním či aktualizací ProgressBaru

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Jirka
~ Anonymní uživatel
305 příspěvků
5. 9. 2012   #4
-
0
-

Takže s tím OpenFileDialog to bych měl ale s tím ProgressBarem to bude asi těžký vlákna jak jsem pročítal tak ještě pořád nechápu. 

Nahlásit jako SPAM
IP: 94.113.174.–
Aigor0
Newbie
10. 10. 2012   #5
-
0
-

#4 Jirka

Zkus mrknout na tohle video

Já podle toho úspěšně napsal svůj první program s využitím vlákna na pozadí a průběhem v progressbaru.

Nahlásit jako SPAM
IP: 91.214.156.–
ASM -> Pascal -> C -> C++ -> PHP/mySQL and now C# && .NET beginner..
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 17 hostů

Podobná vlákna

File upload — založil ehm

PHP file upload... — založil smycma

Upload souborů na server — založil dragon124

ASP.NET Upload na server — založil Al

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý