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

//localhost:2296/WebService/他会报一个不支持这样的格式路径... //localhost:2296/WebService/他会报一个不支持这样的格式路径 展开
 我来答
曹晓山11
2015-06-18 · 知道合伙人互联网行家
曹晓山11
知道合伙人互联网行家
采纳数:3033 获赞数:52068
毕业南阳理工学院计算机科学与技术专业,本科学位。互联网行业从业3年工作经验,读过编程类相关书籍多本。

向TA提问 私信TA
展开全部

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

WebService部分:

/// <summary>
    /// 保存文件到远程服务器
    /// </summary>
    /// <param name="FileByteArray">待转换字节数组</param>
    /// <param name="FileLength">字节长度</param>
    /// <param name="SaveToUrl">保存路径</param>
    /// <returns>返回是否执行成功</returns>
    [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;
    }
kyd3000
2012-09-15 · TA获得超过1550个赞
知道大有可为答主
回答量:1674
采纳率:50%
帮助的人:893万
展开全部
存放程序里面的存放路径要为绝对路径。不能用相对路径。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ben
2012-09-15 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

向TA提问 私信TA
展开全部
使用二进制流的模式长传保存
追问
我是用的这样的方式,但是总提示要上传的路径格式不正确,因为我要上传到服务器,所以地址我是这样写的//localhost:2296/WebService/
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式