C#使用webservice把文件上传到服务器

//localhost:2296/WebService/他会报一个不支持这样的格式路径
2024-11-18 19:42:04
推荐回答(3个)
回答1:

C#使用webservice把文件上传到服务器的代码如下(这里以C:\\zhidao.jpg这个文件上传为例):

WebService部分:

/// 
    /// 保存文件到远程服务器
    /// 

    /// 待转换字节数组
    /// 字节长度
    /// 保存路径
    /// 返回是否执行成功
    [WebMethod(Description = "保存文件到远程服务器.")]
    public bool SaveFile(byte[] FileByteArray,int FileLength, string SaveToUrl)
    {
        try
        {
            FileStream fs = new FileStream(SaveToUrl, FileMode.OpenOrCreate, FileAccess.Write);
            fs.Write(FileByteArray, 0, FileLength);
            fs.Close();
        }
        catch {
            return false;
        }
        return true;
    }

上传文件调用部分:

protected void Button1_Click(object sender, EventArgs e)
    {
        MangerPhoto.Service mp = new MangerPhoto.Service();
        Response.Write(mp.SaveFile(getByte(), FileUpload1.PostedFile.ContentLength, "C:\\zhidao.jpg"));
    }    private byte[] getByte() {//获得转化后的字节数组
        //得到用户要上传的文件名
        string strFilePathName = FileUpload1.PostedFile.FileName;
        string strFileName = Path.GetFileName(strFilePathName);
        int FileLength = FileUpload1.PostedFile.ContentLength;
        //上传文件
        Byte[] FileByteArray = new Byte[FileLength]; //图象文件临时储存Byte数组
        Stream StreamObject = FileUpload1.PostedFile.InputStream; //建立数据流对像
        //读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
        StreamObject.Read(FileByteArray, 0, FileLength);
        return FileByteArray;
    }

回答2:

存放程序里面的存放路径要为绝对路径。不能用相对路径。

回答3:

使用二进制流的模式长传保存