Я пытаюсь написать инструмент для пакетной загрузки изображений на свой сайт, но мне не удается получить (или отправить) фактические данные на сервер.C# - WebClient.UploadFile не получает данные POST
Начну с некоторыми C# код, как это должно объяснить, что я пытаюсь сделать лучше, что я могу сформулировать:
private bool Upload(string LocalFile, int ItemID, string Description, DateTime Date, string Photographer)
{
WebClient oWeb = new System.Net.WebClient();
NameValueCollection parameters = new NameValueCollection();
parameters.Add("Type", "1");
parameters.Add("ID", ItemID.ToString());
parameters.Add("Desc", Description);
parameters.Add("Date", Date.ToString("yyyy-MM-dd"));
parameters.Add("Photographer", Photographer);
oWeb.QueryString = parameters;
var responseBytes = oWeb.UploadFile("http://www.teamdefiant.co.uk/moveuploadedfile.php", LocalFile);
string response = Encoding.ASCII.GetString(responseBytes);
MessageBox.Show("Response: \n\n" + response + "\n\nPost Data: \n\n" + LocalFile + "\n" + ItemID.ToString() + "\n" + Description + "\n" + Date.ToString("yyyy-MM-dd") + "\n" + Photographer);
Clipboard.SetText("Response: \n\n" + response + "\n\nPost Data: \n\n" + LocalFile + "\n" + ItemID.ToString() + "\n" + Description + "\n" + Date.ToString("yyyy-MM-dd") + "\n" + Photographer);
return true;
}
Когда я получаю ответ, (как это отображается в MessageBox, и Clipboard.SetText) Я получаю следующие данные:
Response:
Upload:
Type:
Size: 0kb
Stored in:
Post Data:
C:\Users\<MyFolder>\Pictures\Website\ExampleImage.png
4
Picture Description
2014-12-10
Photographer
И для полноты картины, вот код PHP:
<?PHP
if ($_FILES["myfile"]["error"] > 0)
{
echo "Error: " . $_FILES["myfile"]["error"] . "\n";
}
else
{
echo "Upload: " . $_FILES["myfile"]["name"] . "\n";
echo "Type: " . $_FILES["myfile"]["type"] . "\n";
echo "Size: " . ($_FILES["myfile"]["size"]/1024) . " Kb\n";
echo "Stored in: " . $_FILES["myfile"]["tmp_name"] . " \n";
echo $_POST["Type"] . " \n";
echo $_POST["ID"] . " \n";
echo $_POST["Desc"] . " \n";
echo $_POST["Date"] . " \n";
echo $_POST["Photographer"] . " \n";
}
?>
Я пробовал искать ответы, но не смог найти рабочее решение, которое я могу понять. (Я все еще просто изучаю C#.)
Я не получаю никаких ошибок кода в Visual Studio, не получаю никаких ошибок на сервере POST, поэтому я в тупике.
Любая помощь приветствуется!
EDIT
Я пытался посетить веб-страницу непосредственно и получить тот же ответ, так что похоже, нет данных посылается на сервер ?? :(
где ваш код формы, иногда не прикладывая многокомпонентные и другие вещи на
Какая форма тега? Я не загружаю данные из веб-формы. Я пытаюсь загрузить данные программно из моего приложения C#. –
на php-код add print_r ($ _ POST); – unixmiah