如何将文件和POST变量上传到php

已加入
2020年1月21日
留言内容
8
编程经验
1-3
我有一个C#脚本,可在此处使用PHP将图像上传到我的网络服务器:

C# :
C#:
WebClient Client = new WebClient();

Client.Headers.Add("Content-Type", "binary/octet-stream");

byte[] result = Client.UploadFile("//example.com/test.php", "POST", @"C:\mario.jpg");

string s = Encoding.UTF8.GetString(result, 0, result.Length);

的PHP :
PHP:
$uploads_dir = 'img'; //Directory to save the file that comes from client application.
if ($_FILES["file"]["error"] == UPLOAD_ERR_OK) {
    $tmp_name = $_FILES["file"]["tmp_name"];
    $name = $_FILES["file"]["name"];
    move_uploaded_file($tmp_name, "$uploads_dir/$name");
}

所有这些都可以,但是我也想发送一个可以在PHP代码中访问的变量,如下所示:
PHP:
$variable = $_POST['variable'];

我想在一个请求中发送所有这些信息,因为文件的最终路径将由C#决定,并在上一个PHP示例中作为“变量”发送。
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,919
地点
英国
编程经验
10+
您忽略了问一个问题。

我想指出的是,您的帖子似乎比C#更适合php。这可能会导致您的帖子在任何时候都被关闭,因为这些论坛不支持php问题。

If you wanted to upload additional values, wouldn't you use Client.UploadValues? WebClient.UploadValues方法(System.Net)
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,487
地点
弗吉尼亚州切萨皮克
编程经验
10+
The OP wants the value(s) to be sent along with the call to WebClient.UploadFile().

Off the top of my head, I think the brute force approach to accomplish this is to use WebClient.UploadData() setting the content type to be "multipart/form-data",然后建立自己的上传主体。

有关概述,请参见 多部分表单
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,487
地点
弗吉尼亚州切萨皮克
编程经验
10+
最佳 底部