Uploader meme si le champ est vide
Kamster
-
phil232 Messages postés 610 Statut Membre -
phil232 Messages postés 610 Statut Membre -
Bonjour,
J'ai le code d'upload suivant qui marche parfaitement pour un site de petites annonces.
Mais mon probleme est que le formulaire ne reagit pas au moment de valider SI le champ du fichier est vide. (quand on ne selectionne aucun fichier).
Mon souhait et d'envoyer quand meme les autres autres données du formulaire MEME SI le champ file est vide. Ou mieux, est-ce possible de definir une valeur par defaut pour le champ file (nopicture.gif - par exemple) qui remplacera le fichier au cas l'internaute ne selectionne aucun fichier ?
Je sais que le probleme se situe a ce niveau, mais je n'arrive pas a resoudre le probleme : if(!empty($HTTP_POST_FILES['photo'])) {
//// MON CODE /////
<?php require_once('Connections/maconnexion.php'); ?>
<?php
// ---------------------------------------------
// -------------------------------------------
if (phpversion() > "4.0.6") {
$HTTP_POST_FILES = &$_FILES;
}
define("MAX_SIZE",300000);
define("DESTINATION_FOLDER", "./photos");
define("no_error", "annonceOK.php");
define("yes_error", "=erreur.php");
$_accepted_extensions_ = "gif,jpg,jpeg,png";
if(strlen($_accepted_extensions_) > 0){
$_accepted_extensions_ = @explode(",",$_accepted_extensions_);
} else {
$_accepted_extensions_ = array();
}
/* Mon proble se situerait ici */
if(!empty($HTTP_POST_FILES['photo'])){
if(is_uploaded_file($HTTP_POST_FILES['photo']['tmp_name']) && $HTTP_POST_FILES['photo']['error'] == 0){
$_file_ = $HTTP_POST_FILES['photo'];
$errStr = "";
$id_user = $_POST['id_user'];
$categorie = $_POST['categorie'];
$etat = $_POST['etat'];
$titre = $_POST['titre'];
$prix = $_POST['prix'];
$details = $_POST['details'];
$_name_ = $_file_['name'];
$_type_ = $_file_['type'];
$_tmp_name_ = $_file_['tmp_name'];
$_size_ = $_file_['size'];
if($_size_ > MAX_SIZE && MAX_SIZE > 0){
$errStr = "File troppo pesante";
}
$_ext_ = explode(".", $_name_);
$_ext_ = strtolower($_ext_[count($_ext_)-1]);
if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
$errStr = "Extesion non valide";
}
if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
$errStr = "Fichier de destination invalide";
}
if(empty($errStr)){
if(@move_uploaded_file($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){header("Location: " . no_error);
mysql_select_db($database_vetements, $connexion);
$insertAnnonce = "INSERT INTO matable (id_user, categorie, etat, titre, prix, details, photo )
VALUES ('$id_user', '$categorie', '$etat', '$titre', 'prix', 'details', '$_name_')";
mysql_query($insertAnnonce, $connexion)
or die(mysql_error());
} else {
header("Location: " . yes_error);
}
} else {
header("Location: " . yes_error);
}
}
}
?>
/// FIN ////
Meci pour votre aide.
J'ai le code d'upload suivant qui marche parfaitement pour un site de petites annonces.
Mais mon probleme est que le formulaire ne reagit pas au moment de valider SI le champ du fichier est vide. (quand on ne selectionne aucun fichier).
Mon souhait et d'envoyer quand meme les autres autres données du formulaire MEME SI le champ file est vide. Ou mieux, est-ce possible de definir une valeur par defaut pour le champ file (nopicture.gif - par exemple) qui remplacera le fichier au cas l'internaute ne selectionne aucun fichier ?
Je sais que le probleme se situe a ce niveau, mais je n'arrive pas a resoudre le probleme : if(!empty($HTTP_POST_FILES['photo'])) {
//// MON CODE /////
<?php require_once('Connections/maconnexion.php'); ?>
<?php
// ---------------------------------------------
// -------------------------------------------
if (phpversion() > "4.0.6") {
$HTTP_POST_FILES = &$_FILES;
}
define("MAX_SIZE",300000);
define("DESTINATION_FOLDER", "./photos");
define("no_error", "annonceOK.php");
define("yes_error", "=erreur.php");
$_accepted_extensions_ = "gif,jpg,jpeg,png";
if(strlen($_accepted_extensions_) > 0){
$_accepted_extensions_ = @explode(",",$_accepted_extensions_);
} else {
$_accepted_extensions_ = array();
}
/* Mon proble se situerait ici */
if(!empty($HTTP_POST_FILES['photo'])){
if(is_uploaded_file($HTTP_POST_FILES['photo']['tmp_name']) && $HTTP_POST_FILES['photo']['error'] == 0){
$_file_ = $HTTP_POST_FILES['photo'];
$errStr = "";
$id_user = $_POST['id_user'];
$categorie = $_POST['categorie'];
$etat = $_POST['etat'];
$titre = $_POST['titre'];
$prix = $_POST['prix'];
$details = $_POST['details'];
$_name_ = $_file_['name'];
$_type_ = $_file_['type'];
$_tmp_name_ = $_file_['tmp_name'];
$_size_ = $_file_['size'];
if($_size_ > MAX_SIZE && MAX_SIZE > 0){
$errStr = "File troppo pesante";
}
$_ext_ = explode(".", $_name_);
$_ext_ = strtolower($_ext_[count($_ext_)-1]);
if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
$errStr = "Extesion non valide";
}
if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
$errStr = "Fichier de destination invalide";
}
if(empty($errStr)){
if(@move_uploaded_file($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){header("Location: " . no_error);
mysql_select_db($database_vetements, $connexion);
$insertAnnonce = "INSERT INTO matable (id_user, categorie, etat, titre, prix, details, photo )
VALUES ('$id_user', '$categorie', '$etat', '$titre', 'prix', 'details', '$_name_')";
mysql_query($insertAnnonce, $connexion)
or die(mysql_error());
} else {
header("Location: " . yes_error);
}
} else {
header("Location: " . yes_error);
}
}
}
?>
/// FIN ////
Meci pour votre aide.
A voir également:
- Uploader meme si le champ est vide
- Supprimer page word vide - Guide
- Caractere vide - Guide
- Nb si ens non vide ✓ - Forum Excel
- Formate pour taxer client frigo vide - Forum Vos droits sur internet
- Coeur vide - Forum Facebook
5 réponses
est-ce possible de definir une valeur par defaut pour le champ file (nopicture.gif - par exemple) qui remplacera le fichier au cas l'internaute ne selectionne aucun fichier ?
Bien sur. Pourquoi tu demandes. C'est fait en 5 secondes.
Bien sur. Pourquoi tu demandes. C'est fait en 5 secondes.
Ok, merci Phil pour votre approche. Est-il possible que vous me montriez comment faire ?
Merci pour votre assistance.
Merci pour votre assistance.
Merci Phil, mais j'avais essayer cette option avant et ca n'avait pas marcher. Semble t-il que la valeur par defaut ne marche pas avec les champs de type files. Cela marche avec seulement les champs texte, textarea, select et radio.
Merci si tu as d'autres solutions.
Merci si tu as d'autres solutions.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question