Télécharger PHP serveur de c sharp application client
Actuellement, j'ai un c sharp application (application Client). et une application web écrite en php. Je veux transférer des fichiers à chaque fois qu'une action est effectuée à côté client. Voici le code du client pour télécharger le fichier php du serveur..
private void button1_Click(object sender, EventArgs e)
{
System.Net.WebClient Client = new System.Net.WebClient();
Client.Headers.Add("Content-Type", "binary/octet-stream");
byte[] result = Client.UploadFile("http://localhost/project1/upload.php", "POST",
@"C:\test\a.jpg");
string s = System.Text.Encoding.UTF8.GetString(result, 0, result.Length);
}
Ici est la upload.php fichier pour déplacer le fichier..
$uploads_dir = './files/'; //Directory to save the file that comes from client application.
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
Je ne reçois pas toutes les erreurs de code ci-dessus. mais il ne semble pas fonctionner. Pourquoi est-il? Ai-je raté quelque chose?
Quelles sont les erreurs que vous obtenez ?
Je ne reçois pas toutes les erreurs. Mais mon fichier n'a pas de transfert.
Ne pas le contenu-type de
repllace
Je ne reçois pas toutes les erreurs. Mais mon fichier n'a pas de transfert.
Ne pas le contenu-type de
multipart/form-data
?repllace
if ($error == UPLOAD_ERR_OK) {
avec if ($_FILES["file"]["error"] == UPLOAD_ERR_OK) {
OriginalL'auteur Fawzan Izy | 2012-04-19
Vous devez vous connecter pour publier un commentaire.
Votre code PHP pour le traitement plusieurs les uploads de fichier, mais votre code C# est seulement de téléchargement d' un fichier.
Vous avez besoin de modifier votre code PHP un peu, le retrait de la
foreach
boucle:Vous devez également vous assurer que le
./files
répertoire existe.J'ai testé le code PHP avec votre code C# et cela a fonctionné parfaitement.
Pour plus d'informations sur gérer les uploads de fichier, reportez-vous à la documentation de PHP.
Pour plus d'informations sur le téléchargement de plusieurs fichiers avec C# et PHP, voici quelques liens utiles:
Télécharger des fichiers avec HTTPWebrequest (multipart/form-data)
Utiliser des Tableaux de Variables de Formulaire HTML
PHP: le Téléchargement de plusieurs fichiers
Si vous voulez quelque chose de simple pour le téléchargement de plusieurs fichiers, vous venez juste de télécharger un fichier à la fois à
upload.php
en C# boucle.V. O. I. L.
OriginalL'auteur Xenon
Votre code php me semble correct, cependant, vous essayez d'accéder au fichier à l'aide de la "photo" de la clé de la variable $_FILES mondiale. Il ne semble pas être spécifié dans votre code csharp. Je ne sais pas comment faire, pensait-elle. Vous pourriez essayer de voir comment il a été nommé dans votre php en faisant un print_r ou vardump de $_FILE mondiale ou à l'aide de la array_keys fonction
Ce qui concerne
Edit: j'ai trouvé ce lien qui pourrait vous aider à ajouter un "nom" de votre fichier téléchargé:
http://www.bratched.com/en/home/dotnet/69-uploading-multiple-files-with-c.html
href="http://php.net/manual/en/features.file-upload.errors.php" >php.net/manual/en/features.file-upload.errors.php
Cette réponse est fausse. Le code PHP dans la question, pour gérer plusieurs téléchargements de fichiers, et ne fonctionne que lorsque
<input name="pictures[]" type="file" />
est utilisé.Oui, c'est mal. Il ne s'agissait pas de télécharger plusieurs fichiers en tant que @Xenon dit.
J'ai pas de lien ceci pour vous montrer comment télécharger, juste la chose la plus rapide que j'ai pu trouver pour vous montrer comment définir un nom pour le fichier téléchargé.
Content-Disposition: form-data; name=\"{0}\"{1}{1}"
était la seule chose que je voulais vous montrer. Pour expliquer $_FILE est un réseau mondial contenant le fichier téléchargé. C'est un réseau mondial comme le $_POST ou $_GET. Lorsque vous essayez d'accéder à une valeur dans ces tableaux vous utilisez une clé, qui est appelé un "nom". Comme xenon exemple de fichier html d'entrée, le nom de l'attribut est défini, et qui vous permettent d'accéder à l' $_FILE tableau avec le même nom. Chose que je ne vois pas dans votre c#.OriginalL'auteur grifos