c# - 使用c#将文件上传到服务器

标签 c# mysql database winforms file-upload

我正在尝试将文件上传到我的服务器,之后我会将路径保存在我的数据库中,但文件上传不起作用,这并不异常(exception),但当我检查我的文件夹时,我不这样做看不到任何上传的文件 这是我的代码:

private void bBrowse_Click(object sender, EventArgs e)
    {
        long size = -1;
        string path = "";
        openFileDialog1.FileName = "";
        openFileDialog1.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"; 
        DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
        if (result == DialogResult.OK) // Test result.
        {

            openFileDialog1.Title = "Attach speech assessment document";
            openFileDialog1.Filter = "Doc Files|*.doc|Docx File|*.docx|PDF doc|*.pdf";
            openFileDialog1.InitialDirectory = @"C:\";
            fileName = System.IO.Path.GetFileName(openFileDialog1.FileName);
            path = Path.GetDirectoryName(openFileDialog1.FileName);
            labelFileName.Text = path + "/" + fileName;


        }
        Console.WriteLine(path); // <-- Shows file path in debugging mode.

        Console.WriteLine(result); // <-- For debugging use.
    }

    private void buttonAdd_Click(object sender, EventArgs e)
    {
        try
        {
            WebClient client = new WebClient();

            NetworkCredential nc = new NetworkCredential("username", "password");

            Uri addy = new Uri(@"http://url/public_html/assessment" + fileName);

            client.Credentials = nc;
            byte[] arrReturn = client.UploadFile(addy, labelFileName.Text);
            MessageBox.Show(arrReturn.ToString());

        }
        catch (Exception ex1)
        {
            MessageBox.Show(ex1.Message);
        }

最佳答案

多亏了@William的评论,我解决了这个问题,我忘了添加斜杠,而且我还在网址中写了http而不是ftp,这是主要错误!

编辑后的代码:

private void bBrowse_Click(object sender, EventArgs e)
    {
        long size = -1;
        string path = "";
        openFileDialog1.FileName = "";
        openFileDialog1.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"; 
        DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
        if (result == DialogResult.OK) // Test result.
        {

        openFileDialog1.Title = "Attach speech assessment document";
        openFileDialog1.Filter = "Doc Files|*.doc|Docx File|*.docx|PDF doc|*.pdf";
        openFileDialog1.InitialDirectory = @"C:\";
        fileName = System.IO.Path.GetFileName(openFileDialog1.FileName);
        path = Path.GetDirectoryName(openFileDialog1.FileName);
        labelFileName.Text = path + "/" + fileName;


    }
    Console.WriteLine(path); // <-- Shows file path in debugging mode.

    Console.WriteLine(result); // <-- For debugging use.
}

private void buttonAdd_Click(object sender, EventArgs e)
{
    try
    {
        WebClient client = new WebClient();

        NetworkCredential nc = new NetworkCredential("username", "password");

        Uri addy = new Uri(@"ftp://url/public_html/assessment/" + fileName);

        client.Credentials = nc;
        byte[] arrReturn = client.UploadFile(addy, labelFileName.Text);
        MessageBox.Show(arrReturn.ToString());

    }
    catch (Exception ex1)
    {
        MessageBox.Show(ex1.Message);
    }

关于c# - 使用c#将文件上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28732428/

相关文章:

c# - Windows Mobile 6.5 应用程序未显示在任务管理器中

c# - 使用 Entity Framework 时如何刷新数据 GridView ?

php - make :auth 后迁移 Laravel 时出错

mysql - 在聚合子查询或连接中计数

database - Grails 中的 Liquibase : “Empty result set, expected one row”

sql - 从数据表到数据库插入多个 Anto Number

c# - 设置 "Always copy to output directory"时,Content 和 None 有什么区别?

c# - 尝试创建一个 256 位 key 以存储在 web.config 中

javascript - CanvasJs 动态数据与 PHP、mySQL

database - 文件夹搜索算法