首页 > 解决方案 > C# LibCurlNet 图像上传

问题描述

嗨,我有以下代码,它实际上创建了CurlFile Object一个图像并将图像发布到服务器。它在 php 上完美运行

$post_data = array('device_timestamp' => time());
$post_data['photo'] = "@".realpath('imagePath');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

但是我想用 c# LibCurNet 实现同样的效果。到目前为止我尝试过的内容如下

var content = new MultipartFormDataContent();
content.Add(new StreamContent(File.Open(@"D:\mypictres\p.JPG", FileMode.Open)), "photo", "Image.JPG");
content.Add(new StringContent("mobiletime"), "1526137643");

easy.SetOpt(CURLoption.CURLOPT_POST, 
easy.SetOpt(CURLoption.CURLOPT_POSTFIELDS, content );

public class postData
{
        public string device_timestamp { get; set; }
        public string photo { get; set; }
}

用作

 postData p = new postData();
 p.device_timestamp = "1526137643";
 p.photo = @"D:\mypictures\p.JPG";
 easy.SetOpt(CURLoption.CURLOPT_POST, 
 easy.SetOpt(CURLoption.CURLOPT_POSTFIELDS, p);

我真的很想CurlFileObject在 c# 中替换什么。我不想使用HttpWebRequestHttpClient出于某些原因。

标签: c#phpcurl

解决方案


在我看来,我们在同一条路上哈哈。试试下面的代码。

MultiPartForm mf = new MultiPartForm();

mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "name",
CURLformoption.CURLFORM_COPYCONTENTS, "value",
CURLformoption.CURLFORM_END);



mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "photo",
CURLformoption.CURLFORM_FILE, @"yourpicturepath",
CURLformoption.CURLFORM_CONTENTTYPE, "multipart/form-data",
CURLformoption.CURLFORM_END);

easy.SetOpt(CURLoption.CURLOPT_HTTPPOST, mf);

推荐阅读