|
Candidat au titre de Membre du Club
Inscription : mars 2009 Messages : 82 Détails du profil  Informations forums : Inscription : mars 2009 Messages : 82 Points : 11 Points : 11
|
Upload fichier et insertion mysql
Bonjour,
Je suis débutant en jquery et j'essaie de réaliser une admin.
A l'aide d'un formulaire je renseigne ma base de données et je souhaite également uploader des fichier c'est là ou les problèmes commencent.
L'insertion des données de mon formulaire se font bien sauf les données relatives à l'upload du fichier ce n'est pas un problème du nom de champ car quand je passe celui en champ text standard l'insertion dans la base de données mysql se fait.
Je vous joins mon code se sera plus explicite.
Pour info ce formulaire est dans un tab jquery
Le php avec le formulaire en question
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <form id="formSingles" action="newSinglesTest.php" method="post" enctype="multipart/form-data">
<table>
<tr>
<th>Selectionnez Votre Artiste:</th>
<td><select name="artists" id="artists">
<option></option>
<?
$query01="SELECT * FROM artists ORDER BY art_name";
$result01=mysql_query($query01);
while($val01=mysql_fetch_array($result01)) {?>
<option id="id_art" value="<?echo $val01['art_id'];?>"><?echo $val01['art_name'];?></option>
<?
}
?>
</select></td>
</tr>
<tr>
<th>Entrez Votre Single:</th>
<td><input type="text" name="single" value="" /></td>
</tr>
<tr>
<th>Pochette Single</th>
<td><input type="file" name="single_cover" size="50" /></td>
</tr>
<tr>
<th>Année de Sortie</th>
<td><input type="text" name="single_release_date" /></td>
</tr>
<tr>
<th></th>
<td><input class="submitButton" type="submit" value="Valider" /></td>
</tr>
</table>
</form> |
Le php pour l'insertion mysql et upload
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| <?php include_once("connexion.php"); ?>
<?php
mysql_select_db($database, $base);
$todayis = date("Y/m/d");
if(!empty($_POST['single'])){
$query_single = "INSERT INTO singles(single_id, single_name, single_art, single_cover, single_release_date, single_date_added, single_status) VALUES ('NULL', '".$_POST['single']."', '".$_POST['artists']."', '".$_FILES['single_cover']."', '".$_POST['single_release_date']."', '$todayis', '1' )";
$single = mysql_query($query_single, $base);
$id = mysql_insert_id();
// Si il y a un fichier à mettre en ligne, on l'upload
if(!empty($_FILES["single_cover"]))
{
// Creation d'un nouveau nom de fichier sous la forme "cover_XXX.jpg"
$fichier = "cover_single_".$id.".jpg";
echo $fichier;
// on recupere largeur/hauteur de l'image
list($largeur, $hauteur, $type, $attr)=getimagesize($_FILES["single_cover"]["tmp_name"]);
// on calcule le ratio pour savoir si elle est en portrait ou paysage
$ratio = $largeur / $hauteur;
// $monExtension = strtolower(strrchr($_FILES["album_cover"]["name"], '.'));
$uploaddir = "/home/nats/admin_radio/radio/covers/";
$uploaddir2 = "/home/nats/admin_radio/radio/covers/resized/";
$uploadfile=$uploaddir.$fichier;
$uploadfile2=$uploaddir2.$fichier;
$src_img = imagecreatefromjpeg($_FILES["single_cover"]["tmp_name"]);
// Exemple de resize en 50 de large maxi
$new_w = 50;
$new_h = 50/$ratio;
$dst_img = imagecreatetruecolor($new_w, $new_h);
imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img));
imagejpeg($dst_img,$uploadfile2,90);
//Copy the file to some permanent location
if (move_uploaded_file($_FILES["single_cover"]["tmp_name"], $uploadfile))
{
echo "Cover Uploadee et Resizee";
$query01="UPDATE singles SET single_cover = '$fichier' WHERE single_id = '$id'";
$result01=mysql_query($query01, $base);
}
else
{
echo "Cover Non Uploadee";
}
}
if($single == true){
$query_single = sprintf("SELECT * FROM singles WHERE single_id = $id");
$single = mysql_query($query_single, $base) or die(mysql_error());
$row_single = mysql_fetch_assoc($single);
$result = array();
do {
$result[] = $row_single;
} while ($row_single = mysql_fetch_object($single));
echo '{"single":'.json_encode($result).'}';
}
}
else{
echo json_encode("Veuillez Entrer Un Single");
}
?> |
Pour finir le js
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| $(document).ready(function(){
addSingle.init();
});
var addSingle = {
$submitSingle : null,
$formSingles : null,
$singleResponse : null,
$modifySingleLink : null,
$deleteSingleLink : null,
$modifySingleBloc : null,
$formSingleModify : null,
$modifySingleConfirmation : null,
$formSingleDelete : null,
$deleteSingleConfirmation : null,
init : function(){
$("#tabs").tabs();
this.initSingleManager();
},
initSingleManager : function(){
this.$formSingles = $("form#formSingles");
this.$submitSingle = this.$formSingles.find("input.submitButton");
this.$singleResponse = $("#singleResponse");
this.$modifySingleLink = $("#modifySingle");
this.$deleteSingleLink = $("#deleteSingle");
this.$modifySingleBloc = $("#modifySingleBloc");
this.$deleteSingleBloc = $("#deleteSingleBloc");
this.$formSingleModify = $("form#formSingleModify");
this.$formSingleDelete = $("form#formSingleDelete");
this.$modifySingleConfirmation = this.$singleResponse.find(".modifySingleConfirmation");
this.$deleteSingleConfirmation = this.$singleResponse.find(".deleteSingleConfirmation");
this.$submitSingle.click(function(event){
event.preventDefault();
addSingle.$singleResponse.hide();
addSingle.$modifySingleConfirmation.hide();
addSingle.$formSingleDelete.hide();
addSingle.$deleteSingleConfirmation.hide();
ajaxRequest(addSingle.$formSingles, "addSingle.handleSinglesResponse(response)");
});
this.$modifySingleLink.click(function(event){
event.preventDefault();
addSingle.$modifySingleConfirmation.hide();
addSingle.$deleteSingleBloc.hide();
addSingle.$formSingleModify.show();
addSingle.$modifySingleBloc.show();
});
this.$deleteSingleLink.click(function(event){
event.preventDefault();
addSingle.$modifySingleBloc.hide();
addSingle.$deleteSingleBloc.show();
addSingle.$formSingleDelete.show();
});
this.$deleteSingleBloc.find(".submitButton").click(function(event){
event.preventDefault();
addSingle.$modifySingleBloc.hide();
ajaxRequest(addSingle.$formSingleDelete, "addSingle.handleSinglesDeleteResponse(response)");
});
this.$modifySingleBloc.find(".submitButton").click(function(event){
event.preventDefault();
ajaxRequest(addSingle.$formSingleModify, "addSingle.handleSinglesModifyResponse(response)");
});
this.$modifySingleBloc.find(".cancelButton").click(function(event){
event.preventDefault();
addSingle.$modifySingleBloc.hide();
});
this.$deleteSingleBloc.find(".cancelButton").click(function(event){
event.preventDefault();
addSingle.$deleteSingleBloc.hide();
});
},
handleSinglesResponse : function(json){
var datas = json.single[0];
this.$singleResponse.find(".insertedSingleName, .deletedSingleName").text(datas.single_name);
this.$singleResponse.find(".insertedSingleCover, .deletedSingleCover").data(datas.single_cover);
this.$singleResponse.find(".insertedSingleId, .deletedSingleId").text(datas.single_id);
this.$singleResponse.find(".singleModifyField").val(datas.single_name);
this.$singleResponse.find(".singleIdField").val(datas.single_id);
$("#introSingle").show();
this.$singleResponse.show();
},
handleSinglesModifyResponse : function(json){
var datas = json.single[0];
this.$singleResponse.find(".modifiedSingleName, .deletedSingleName").text(datas.single_name);
this.$singleResponse.find(".modifiedSingleId").text(datas.single_id);
this.$formSingleModify.hide();
this.$modifySingleConfirmation.show();
},
handleSinglesDeleteResponse : function(json){
this.$formSingleDelete.hide();
this.$deleteSingleConfirmation.show();
$("#introSingle").hide();
}
}
function ajaxRequest(formObj, callback){
$.ajax({
type: "POST",
url: formObj.attr('action'),
data: formObj.serialize(),
dataType : "json",
success: function(response){
eval(callback);
}
});
} |
Ce que je ne comprends c'est que même quand je mets des <echo> tout bête dans mon php mon script se fige et il ne se passe rien tout comme quand je teste avec des try et catch pour voir ou ça bloque.
Pour finir je voulais également faire afficher veuillez entrer un single(cf le php d'insertion) si je valide mon formulaire à vide et il ne passe rien ce qui reprend mon problème au niveau des echo.
J'espère avoir été assez clair, veuillez m'excuser je suis débutant et vous remercie d'avance.
Je suis à votre disposition pour toutes autres infos.
Cordialement,
Nkordiko
|