$_POST variables de ne pas travailler avec $_FILES et multipart/form-data
Problème: Chaque fois que je change le enctype
sur mon formulaire HTML pour multipart/form-data
, $_POST
variables de ne pas le remplir dans mon script php. Les utilisateurs de télécharger des fichiers avec de remplir un formulaire, et l'upload de fichiers sur le serveur, mais le $_POST
variables de ne pas le remplir.
Code:
Mon formulaire HTML qui recueille les données de texte/image.
index.php
<form name="myForm" METHOD="POST" ACTION="" enctype="multipart/form-data">
<input type="text" name="text1" id="text1">
<input type="text" name="text2" id="text2">
<input type="file" name="filebutton" id="filebutton">
<input type="submit" name="submit" id="submit">
</form>
Mon script php qui tente de mettre à jour ma base de données MySQL, ainsi que de charger mon fichier sur mon serveur Ubuntu est ci-dessous.
upload.php
<?php
$uploaddir = "/var/www/img/pictures/";
$uploadfile = $uploaddir . basename($_FILES['filebutton']['name']);
move_uploaded_file($_FILES['filebutton']['tmp_name'], $uploadfile);
if (isset($_POST['filebutton'])) {
$pictureUpdate = ", PICTURE_FILEPATH = '" . $_POST['filebutton'] . "'";
} else {
$pictureUpdate = "";
}
$connection = mysqli_connect("1.2.3.4","xxxx","xxxx","xxxx") or die("Caonnot connect to database.");
$update = "UPDATE table SET COLUMN1='" . $_POST['text1'] . "', COLUMN2='" . $_POST['text2'] . "' . $pictureUpdate . " where COLUMN3 = " . $_POST['text1'] . " ";
$update_sql = mysqli_query($connection, $update) or die("Cannot connect to mysql table. ". $update);
header("Location: " . $_SERVER['REQUEST_URL'] . "?success=1");
exit();
Ce que j'ai Essayé:
C'est la première fois de faire cela, alors je suis un peu freestyle ici parce que je n'arrive pas à obtenir que cela fonctionne.
- Changé le
enctype
àapplication/x-www-form-urlencoded
. Ni le$_POST
ou$_FILE
des données a montré dans le upload.php fichier. - Retiré
application/x-www-form-urlencoded
tout à fait. Quand je fais cela, mon$_POST
des variables, mais mon fichier n'a pas de téléchargement. - Cochée, php.ini pour
post_max_size
. Après une recherche sur internet, j'ai rencontré un couple StackOverflow des sujets concernant des problèmes similaires. De ce que j'ai recueillies, si le fichier en essayant d'être téléchargé excède la valeur danspost_max_size
, puis$_POST
variables ne passera pas par. La valeur dans mon php.ini fichier pourpost_max_size
dit "8M", et le fichier de test de l'image téléchargée est 103 Kio.
Comment puis-je obtenir $_POST
de données de travail, ainsi que le chargement d'un fichier à partir de la même forme?
- vous n'avez pas d'action dans votre formulaire, puis comment c'est possible. Ou vous êtes à l'aide de jquery pour que
- N'a pas d'action par défaut à l'URI en cours si elle n'est pas définie?
- vierge action = url actuelle de sorte que vous voulez
ACTION="upload.php"
- Stirling si vous demandez alors ok, mais si vous dites que vous Pouvez le voir il y a deux fichiers index.php et upload.php
- L'upload.php pourraient être inclus dans index.php pour tout ce que nous savons 😉
- PAS inclure le code est montré à moi.merci
- J'apprécie les commentaires.
action
de ne pas être ensemble ne semble pas être le problème; j'ai changé d'action pour pointer vers mon script php, et cela ne résout pas mon problème. - vous avez beaucoup d'erreurs de syntaxe et nous avons affaire à un fichier, pas un post de tableau.
Vous devez vous connecter pour publier un commentaire.
Vous suffit de déplacer votre fichier de choses à l'intérieur de votre instruction if, et le changement
$_POST['filebutton']
à$_FILES['filebutton']
Chaque fois que vous faire un upload de fichier, les fichiers sont renseignées dans le
$_FILES
variable globale, et les autres champs remplis dans le$_POST
variable globale.essayer ce code, et de voir ce qu'il fait pour vous, si cela fonctionne et l'autre pas alors cela signifie qu'il ya plus à votre code nous avons besoin pour résoudre le problème.
$_POST
variables n'ont pas été transmis. Après avoir fait la réponse ci-dessus, mon$_POST
variables ne veut toujours pas passer, et maintenant, mon fichier ne sera pas télécharger sur mon serveur.var_dump($_FILES, $_POST);
que la première ligne dansindex.php
array(0) { } array(0) { }
.enctype=multipart/form-data
, puis lePOST
variables de travail, mais le fichier ne sera pas le télécharger. Quand j'ajouteenctype=multipart/form-data
, mes uploads de fichier mais monPOST
variables ne fonctionne pas.