Új hozzászólás Aktív témák

  • gyari

    csendes tag

    sikerült megoldani background workerrel
    csak van egy kis problémám még mindig vele :B :F

    feltölti a fájlt normálisan meg minden csak szeretném megjeleníteni progressbarral is hogy hol tart a feltöltés

    background worker:
    private: System::Void Fájlfeltöltő_DoWork(System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e) {
    if(feltöltés==1)
    {
    while (contentLen != 0)
    {

    _Stream->Write(buff, 0, contentLen);
    contentLen = _FileStream->Read(buff, 0, buffLength);
    e->Result = contentLen;

    }


    }
    }
    private: System::Void Fájlfeltöltő_ProgressChanged(System::Object^ sender, System::ComponentModel::ProgressChangedEventArgs^ e) {
    Fájlméret->Text = contentLen.ToString();
    this->progressBar1->Value = e->ProgressPercentage;
    }
    private: System::Void Fájlfeltöltő_Completed(System::Object^ sender, System::ComponentModel::RunWorkerCompletedEventArgs^ e) {
    _Stream->Close();
    _FileStream->Close();
    button6->Enabled = true;
    feltöltés=0;
    }

    Fájlfeltöltés:

    UploadFileName = L"ftp://ftp.atw.hu/Uploadmusic/"+FájlMegnyitás->SafeFileName;


    _FileInfo = gcnew System::IO::FileInfo(Fájlnév->Text);
    _FtpWebRequest = safe_cast<System::Net::FtpWebRequest^>(System::Net::FtpWebRequest::Create(gcnew Uri(UploadFileName)));
    _FtpWebRequest->Credentials = gcnew System::Net::NetworkCredential(L"****", L"****");
    _FtpWebRequest->KeepAlive = false;
    _FtpWebRequest->Timeout = 20000;
    _FtpWebRequest->Method = System::Net::WebRequestMethods::Ftp::UploadFile;
    _FtpWebRequest->UseBinary = true;
    _FtpWebRequest->ContentLength = _FileInfo->Length;
    buffLength = 20480;
    buff = gcnew array<System::Byte>(buffLength);
    _FileStream = _FileInfo->OpenRead();
    try
    {
    _Stream = _FtpWebRequest->GetRequestStream();
    contentLen = _FileStream->Read(buff, 0, buffLength);

    feltöltés = 1;
    button6->Enabled = false;
    Fájlfeltöltő->RunWorkerAsync();
    }
    catch (Exception ^ex)
    {
    MessageBox::Show(ex->Message, "Feltöltési hiba!", MessageBoxButtons::OK, MessageBoxIcon::Error);
    }

Új hozzászólás Aktív témák