Uploading file to a different web platform using ASP.NET/VB.NET

B

brianinbox

Hi,
I've been trying to upload file using webclient.uploadfile method
from my IIS webserver to an Apache webserver without any success. On
the Apache server (server that receives the incoming file) I have a
simple php script, getFile.php to receive the file. The script look
like this:

<?php
$uploadDir = '/var/www/Incoming/';
$uploadFile = $uploadDir . $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile))
{
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
}
else
{
print "Error receiving file:\n";
print_r($_FILES);
}
print "</pre>";
?>

I know this script work perfectly if I use a standard html with <input
type="file"> method. However, file needs to be sent from an
asp.net page instead of html. People on the newsgroup have been
suggesting me to use webclient.uploadfile method, however, I just could
not get it to work.

Perhaps there is something wrong with my php script or maybe there
something else needs to be done to the webclient. If anybody has came
across with the similar situation, can you show me how to do it both on
the ASP.NET side and php side (or perl)


Thanks
Brian
 
R

recoil

This aspect of the question would best be suited in a php
newsgroup/community. If you have related ASP.NET code using the
UploadFile method then you can post that here.
 
B

bruce barker

i haven't tested (use an network sniff or create a dump page), but suspect
the name is not correct. the standard format is

-----------------------------7d01ecf406a6
Content-Disposition: form-data; name="myfile";
filename="C:\Inetpub\wwwroot\Upload\myFile.txt"
Content-Type: text/plain

this is some test data

-----------------------------7d01ecf406a6

name equals the the name of the input file control in the html version

<input type=file name="myfile>

filename is the name of the file selected.

as the webclient control does not allow to to specify the formdata name, it
is either leaving it out or making one up. but your php script probably
requies it.

-- bruce (sqlwork.com)


| Hi,
| I've been trying to upload file using webclient.uploadfile method
| from my IIS webserver to an Apache webserver without any success. On
| the Apache server (server that receives the incoming file) I have a
| simple php script, getFile.php to receive the file. The script look
| like this:
|
| <?php
| $uploadDir = '/var/www/Incoming/';
| $uploadFile = $uploadDir . $_FILES['userfile']['name'];
| print "<pre>";
| if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile))
| {
| print "File is valid, and was successfully uploaded. ";
| print "Here's some more debugging info:\n";
| print_r($_FILES);
| }
| else
| {
| print "Error receiving file:\n";
| print_r($_FILES);
| }
| print "</pre>";
| ?>
|
| I know this script work perfectly if I use a standard html with <input
| type="file"> method. However, file needs to be sent from an
| asp.net page instead of html. People on the newsgroup have been
| suggesting me to use webclient.uploadfile method, however, I just could
| not get it to work.
|
| Perhaps there is something wrong with my php script or maybe there
| something else needs to be done to the webclient. If anybody has came
| across with the similar situation, can you show me how to do it both on
| the ASP.NET side and php side (or perl)
|
|
| Thanks
| Brian
|
 
J

Joerg Jooss

Hi,
I've been trying to upload file using webclient.uploadfile method
from my IIS webserver to an Apache webserver without any success. On
the Apache server (server that receives the incoming file) I have a
simple php script, getFile.php to receive the file. The script look
like this:

<?php
$uploadDir = '/var/www/Incoming/';
$uploadFile = $uploadDir . $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile))
{
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
}
else
{
print "Error receiving file:\n";
print_r($_FILES);
}
print "</pre>";
?>

I know this script work perfectly if I use a standard html with <input
type="file"> method. However, file needs to be sent from an
asp.net page instead of html. People on the newsgroup have been
suggesting me to use webclient.uploadfile method, however, I just
could not get it to work.

Perhaps there is something wrong with my php script or maybe there
something else needs to be done to the webclient. If anybody has came
across with the similar situation, can you show me how to do it both
on the ASP.NET side and php side (or perl)

This is a bug in WebClient.UploadFile() that exists since .NET 1.0. It
does not create a syntactically correct multipart/form-data request.
You'll have to use WebRequest instead and build your own
multipart/form-data request.

Cheers,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top