Upload pliku na hosting(bez bazy)

0

Witam, szukałem wczoraj sporo w necie jak wysłać plik na jakiś hosting typu sendspace.com czy zippyshare.com lecz neistety nigdzie nic nie znalazłem. To co znajdowałem to tylko jakiś upload plików za pomocą bazy danych, do której przecież w tym wypadku nie mam dostępu. Czy zna może ktoś jakiś pomysł jak się za to zabrać?

0

Poprzez upload plików zwykle się rozumie sytuacje, w której masz swój hosting, tworzysz jakąś strone, webappkę, cokolwiek i do tego dodajesz możliwośc uploadu plików. To co Ty chcesz uzyskać, to wrzucić pliki na jakiś juz gotowy hosting plików. Albo poszukaj API do tego hostingu jeśli udostępniają, albo trzeba prześledzić co przeglądarka wysyła, dobrać sie do ciasteczek itp. Innymi słowy jeśli chcesz to zrobić w swoim programie, to musisz zrobić to tak samo jak robi to przeglądarka.

0

A widzisz, ja myślałem, że upload pliku to właśnie na gotowy hosting : ) Nie jestem jakiś pro i tak zapytam - żeby dobrać się do tego tak, jak to robi przeglądarka w programie dużo trzeba się namęczyć? Bo tak jak się teraz zastanawiam to wydaje się to ogrom pracy. Jeśłi bym się za to zabrał jak mogę sprawdzić co robi przeglądarka?

1

Łatwiej będzie jeżeli sprawdzisz najpierw gotowe API, sendspace ma całkiem przyjemne, z własnego doświadczenia wiem że działa bezproblemowo. Wystarczy trochę poczytać dokumentację (https://www.sendspace.com/dev_index.html). Zabawa z podglądaniem co robi przeglądarka to trochę więcej pracy imo.

0

niech będzie iż sam ocenisz czy Ci byłoby przydatne...

    //
    #region upload
    /// <summary>
    /// Method to upload the specified file to the specified FTP Server
    /// </summary>
    /// <param name="filename">file full name to be uploaded</param>
    private void Upload(string filename)
    {
        FileInfo fileInf = new FileInfo(filename);
        string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;
        FtpWebRequest reqFTP;
        //
        // Create FtpWebRequest object from the Uri provided
        reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name));
        // to jest lokalizacja dla pliku baba-1.zip !!! wysyłanego jako pojedynczy plik
        // poleceniem unzip.php będzie na serwerze rozpakowywany
        // a nastepnie po sprawdzeniu czy kazdy plik txt rzczywiście znajduje się na serwerze w katalogu baba-1
        // plik baba-1.zip musi być usunięty !
        // oczywiście rozumiem, iż www-ftp nie jest docelową lokalizacją dla plików txt - kluczy DDS
        // ponieważ mam tam jedynie 50 MB przestrzeni
        // dlatego szukam i być może uda mi się jako .eml tą technologią
        // tworzyć pliki eml i pakować w baba-1.zip aby po przesłaniu na serwer do foldera baba-1
        // następnie przemiescić je po unzip za pomocą skrytpu w pliku unzip.php
        // przenieść je do przestrzeni na wiadomości czyli do przestrzeni pocztwoej gdzie mam aż 5 GB !!!
        // lub alternatywa - wysyłać je na chomika jako txt (lub eml) tam archiwizować
        // i z tamtąd VAN-1 będzie je sobie pobierał czyli raczej odczytywał
        // do foldera temp i nastepnie jest używał do sprawdzania uprawnień usera do bieżącego losowania gotówki !
        //
        // Provide the WebPermission Credintials
        reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
        //
        // By default KeepAlive is true, where the control connection is not closed
        // after a command is executed.
        reqFTP.KeepAlive = false;
        //
        // Specify the command to be executed.
        reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
        //
        // Specify the data transfer type.
        reqFTP.UseBinary = true;
        //
        // Notify the server about the size of the uploaded file
        reqFTP.ContentLength = fileInf.Length;
        //
        // The buffer size is set to 2kb
        int buffLength = 2048;
        byte[] buff = new byte[buffLength];
        int contentLen;
        //
        // Opens a file stream (System.IO.FileStream) to read the file to be uploaded
        FileStream fs = fileInf.OpenRead();
        //
        try
        {
            // Stream to which the file to be upload is written
            Stream strm = reqFTP.GetRequestStream();
            //
            // Read from the file stream 2kb at a time
            contentLen = fs.Read(buff, 0, buffLength);
            //
            // Till Stream content ends
            while (contentLen != 0)
            {
                // Write Content from the file stream to the FTP Upload Stream
                strm.Write(buff, 0, contentLen);
                contentLen = fs.Read(buff, 0, buffLength);
            }
            //
            // Close the file stream and the Request Stream
            strm.Close();
            fs.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Upload Error");
        }
    }
    //
    private void btnUpload_Click(object sender, EventArgs e)
    {
        OpenFileDialog opFilDlg = new OpenFileDialog();
        if (opFilDlg.ShowDialog() == DialogResult.OK)
        {
            Upload(opFilDlg.FileName);
        }
        //
        btnLstFiles_Click(sender, e);// aktualizacja listBox po operacji dodania lub usunięcia pliku
    }
    //
    /*

2014-05-31-1330

ten program posiada sprawdzone wsie metody
ponadto
umie wysyłać button-2 1.000 plików na serwer w pętli for
oraz wysyłać button-3 1.000 plików na serwer w postaci jednego pliku zip ( przygotowanego w innym programie ! )

wniosek:

zatem program ten można uważać za gotowiznę - szablon
do budowy baba-1 oraz baba-2
automatów które same będą cyklicznie wysyłać oraz pobierać pliki
z dwóch folderów niezależnych serwera home.Pl

         w ramach machiny VAN-1

/**/
//
private void button2_Click(object sender, EventArgs e)// btn-2-wyślij 1.000 na serwer
{// C:\Users\janosz\Documents\Visual Studio 2012\Projects\SP-263-FileCopyGenerator-VAN-1\SP-263-FileCopyGenerator-VAN-1
//
* using System.IO;*dla SP-263
// SP-263 praca z plikami za pomocą klas FileInfo i File
//string fname = @"c:\artyści\impresjoniści\degas.txt";
// string ścieżka = @"C:\Users\janosz\Documents\Visual Studio 2012\Projects\SP-263-FileCopyGenerator-VAN-1";
* string fname = @"opis procedury.txt";*mój plik przykładowy znajdujacy sie w bieżącej lokalizacji projektu
* string full = ścieżka + @"opis procedury.txt";*mój plik przykładowy znajdujacy sie w bieżącej lokalizacji projektu

        string ścieżka = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\";
        string fname = @"5dfd5550-e6cc-48d7-bd00-0b3567ba9e83.txt";
        string full = ścieżka + @"5dfd5550-e6cc-48d7-bd00-0b3567ba9e83.txt";
        //
        //-----------------------------------------------------------------------------------------------
        // część pierwsza strona SP-263
        // przykład uzycia metod klasy FileInfo do wyswietlania informacji o pliku
        /*
        FileInfo fi = new FileInfo(full);// tworzy obiekt klasy FileInfo
        //
        if (fi.Exists)
        {
            textBox1.Text = fi.Length.ToString() + "  -  " + fi.Name.ToString() + "  -  " + fi.DirectoryName.ToString();
            //dane wyjściowe
        }
        /**/
        //
        //-----------------------------------------------------------------------------------------------
        // część druga -strona SP-264
        // przykład użycia klasy do skopiowania pliku do innego katalogu
        string fx = ścieżka + @"xxx\";
        //
        if (File.Exists(full))
        {
            for (int i = 0; i < 100; i++)
            {
                try
                {
                    // jeśli dany plik w katalogu docelowym już istnieje, zostanie wygenerowany wyjątek
                    // ( plik źródłowy, katalog docelowy, nadpisywanie = false)
                    File.Copy(full, fx + "0x-" + i.ToString() + "   -   " + fname, false);
                    //                                   
                    Upload(fx + "0x-" + i.ToString() + "   -   " + fname);*(fileName);* (opFilDlg.FileName);                             
                    //
                    /*
                     2014-05-29-2110 
                    potrzebowałbym wcześniej przygotowane 
                        czyli znajdujace się już w folderze - katalogu xxx
                            tylko wysyłać 
                                a nie w jednej pętli 
                                    w tej chwili jest tworzony plik
                                        czyli kopiowany pod inną nazwą do innej lokalizacji
                                            i w tej samej iteracji pętli for
                                                jest w chwilę później wysyłany na serwer

                                                    gdybym to usprawnił
                                                        nawet pakując w zip

                                            to byłby jeden plik zip do wysłania
                                                czyli to powinienem zrobić

                                                    w pierwszej chwili
                                                        czyli teraz musze zrobić
                                                            pakowaczkę do zipa
                                                                tych plików 

                                                            zrobić foldera xxx


                                                                czyli chłop sobie spakuje do zipa co miałby 
                                                                pojedynczo wysyłać 
                                                                    w pętli for w tysiącu iteracjach...
                         /**/
                    //
                    version.Text = i.ToString();
                    version.Update();
                }
                catch (Exception ex)
                {
                    version.Text = i.ToString();
                    string aa = ex.ToString();
                }
            }
            //
            btnLstFiles_Click(sender, e);// aktualizacja listBox po operacji dodania lub usunięcia pliku
        }
    }
    //
    private void button3_Click(object sender, EventArgs e)// btn-3-wyślij  tylko 1 plik zip na serwer
    {// C:\Users\janosz\Documents\Visual Studio 2012\Projects\SP-263-FileCopyGenerator-VAN-1\SP-263-FileCopyGenerator-VAN-1
        //
        * using System.IO;*dla SP-263
        // SP-263 praca z plikami za pomocą klas FileInfo i File
        //string fname = @"c:\artyści\impresjoniści\degas.txt";
        //     string ścieżka = @"C:\Users\janosz\Documents\Visual Studio 2012\Projects\SP-263-FileCopyGenerator-VAN-1\";
        *   string fname =   @"opis procedury.txt";*mój plik przykładowy znajdujacy sie w bieżącej lokalizacji projektu
        * string full = ścieżka + @"opis procedury.txt";*mój plik przykładowy znajdujacy sie w bieżącej lokalizacji projektu
        //
        string ścieżka = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\";
        string fname = ścieżka + @"1.000 x 17 kB.zip";
        //
        if (File.Exists(fname))
        {
            try
            {
                Upload(fname);
            }
            catch (Exception ex)
            {
                string aa = ex.ToString();
            }
            btnLstFiles_Click(sender, e);// aktualizacja listBox po operacji dodania lub usunięcia pliku
        }
    }
    //
    #endregion
    //
0

to proszem o podpowiedź
jak tego cudu dokonać,
abym na przyszłość wiedział...

ponieważ nie wiem ani też jak wstawić obrazek...
u mnie na Windows 8.1 to nie działa
ale przy okazji pisanie tego zobaczyłem zakładkę Załączniki i może
sprawdzę wkrótce jak to działa i czy to jest to co mnie dręczy...

pozdrofka Michu223

0
Michu223 napisał(a):

to proszem o podpowiedź
jak tego cudu dokonać,
abym na przyszłość wiedział...

ponieważ nie wiem ani też jak wstawić obrazek...
u mnie na Windows 8.1 to nie działa
ale przy okazji pisanie tego zobaczyłem zakładkę Załączniki i może
sprawdzę wkrótce jak to działa i czy to jest to co mnie dręczy...

pozdrofka Michu223

dzięki za podpowiedź
przy okazji sprawdziłem czy tak odpowiadać można akurat w tym wypadku Tobie...
nie zaś w kwestii głównego wątku !

przepraszam Wszystkich z tego powodu
Michu223

0

@up:
Nie bardzo rozumiem co ty robisz : )

A co do tematu to zaraz zoabczę co do tego API sendspace - jesłi to serio łatwiejsze to będę zadowolony na pewno.

1 użytkowników online, w tym zalogowanych: 0, gości: 1