0

我今天有一个可以发布到我的网站的程序,但我需要为我的程序添加文件上传支持(对于 jpg)。我只是让我的程序发布就遇到了这样的问题,现在经过几个小时我无法让它与文件上传一起工作。

今天我的代码不是很好,但它可以工作,我是唯一一个使用它的人。这是我的代码,有点被剥离,但我希望你能明白我需要什么帮助。谢谢!

(“upfile”是图像的输入字段名称)

public static string Post(string url, int id, string message)
{
    try
    {
        string param =
            string.Format(
                "MAX_FILE_SIZE=2097152&id={0}&com={1}&upfile", id, message);

        byte[] bytes = Encoding.ASCII.GetBytes(param);

        var post = (HttpWebRequest)WebRequest.Create(url);

        post.ProtocolVersion = HttpVersion.Version10;
        post.Method = "POST";
        post.AllowAutoRedirect = false;
        post.ContentType = "application/x-www-form-urlencoded";
        post.ContentLength = bytes.Length;

        post.UserAgent =
            "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)";
        post.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";

        Stream requestStream = post.GetRequestStream();
        requestStream.Write(bytes, 0, bytes.Length);
        requestStream.Close();

        var webResponse = (HttpWebResponse)post.GetResponse();
        var sr = new StreamReader(webResponse.GetResponseStream());
        return sr.ReadToEnd();
    }
    catch (Exception exception)
    {
        return null;
    }
}

编辑:抱歉我的解释不佳,我需要帮助:我今天使用上述方法在我的网站上发布,但我需要添加支持以在我的方法中上传文件。我无法在不久的将来更改网页的工作方式,因此必须使用 POST 请求来完成。我无法让它工作,然后我尝试自己做,所以我想知道是否有人可以帮助我需要添加什么来读取图像并将其与请求一起发布!

谢谢!

4

3 回答 3

1

您需要使用 multipart/form-data 的编码而不是 application/x-www-form-urlencoded,然后您需要对 post 数据进行相应的编码

请参阅使用 HTTPWebrequest (multipart/form-data) 上传文件

于 2012-05-23T15:57:47.220 回答
0

我假设您需要比当前解决方案更好的解决方案。如果您使用的是 c#,则可以使用 FILE 上传控件来上传文件。您甚至可以将其限制为您允许的有效文件类型。

控制是文件上传

于 2012-05-23T15:18:52.983 回答
0

您的内容类型不应该是multipart/form-data;?如果您可以使用上传课程,我可以为您提供一个。

于 2012-05-23T16:01:50.040 回答