je télécharger mon fichier en utilisant ExtJS et il est enregistré dans le serveur le problème est que je ne peux pas obtenir une fonction de succès ou même le waitMsg est toujours en cours d'exécution Voici le code Code ExtJS:télécharger des fichiers en utilisant ExtJS et PHP
var fp = new Ext.FormPanel({
fileUpload: true,
width: 500,
frame: true,
title: 'File Upload Form',
bodyStyle: 'padding: 10px 10px 0 10px;',
labelWidth: 50,
defaults: {
anchor: '95%',
allowBlank: false,
msgTarget: 'side'
},
items: [{
xtype: 'fileuploadfield',
id: 'form-file',
emptyText: 'Selectionnez un fichier',
fieldLabel: 'Fichier',
name: 'photo-path',
buttonText: 'Parcourir'
}],
buttons: [{
text: 'Ajouter',
handler: function(){
if(fp.getForm().isValid()){
var myUrl = 'php/file-upload.php?idOrganisme=' + idOrganisme + '&demarche=' + demarche;
//alert(Ext.getCmp('').);
fp.getForm().submit({
url: myUrl,
waitMsg: 'Envoi de votre fichier...',
success:function(fp,o){
alert('Sucess');
}
});
}
}
},{
text: 'Fermer',
handler: function(){
}
}]
});
code PHP:
<?php
include("connexion.php");
$server = "http://localhost/wa";
$idOrganisme = $_GET['idOrganisme'];
$demarche = $_GET['demarche'];
$req = $bdd->query('SELECT idDemarche FROM demarche,typeDemarche WHERE
idOrganisme=' . $idOrganisme .
' AND demarche.idTypeDemarche = typeDemarche.idTypeDemarche
AND typeDemarche.typeDemarche="' . $demarche .'"');
$demarcheArray = $req->fetch();
$idDemarche = $demarcheArray['idDemarche'];
$myPath = '../uploads/_' . $idOrganisme . '_' . $idDemarche . '/';
$target_path = utf8_decode($myPath);
mkdir($target_path, 0705);
echo 'OK';
if(isset($_FILES)){
echo 'OK';
$temp_file_name = utf8_decode($_FILES['photo-path']['tmp_name']);
$original_file_name = utf8_decode($_FILES['photo-path']['name']);
// Find file extention
$ext = explode ('.', $original_file_name);
$ext = $ext [count ($ext) - 1];
// Remove the extention from the original file name
$file_name = str_replace ($ext, '', $original_file_name);
$new_name = $target_path . '[' . utf8_encode($file_name) . $ext;
chmod($new_name, 705);
if(move_uploaded_file ($temp_file_name, $new_name)) {
if($idDemarche!=''){
$length = strlen($new_name);
$path = $server . substr($new_name,2,$
$req = $bdd->prepare('INSERT INTO liens(idDemarche, lien) values(:idDemarche, :lien)');
$req->execute(array('idDemarche' => intVal($idDemarche), 'lien' => $path));
echo "OK";
}
}
else {
echo "error";
}
echo 'message';
}
?>
Cela ne fonctionne pas, mon formulaire de téléchargement est dans une fenêtre que je montre lorsque je clique sur un bouton, cela peut-il être le problème ??? –
Non- à condition que le script PHP qui gère le téléchargement côté serveur renvoie UNIQUEMENT le JSON, cela devrait suffire (c'est-à-dire que la seule chose que le PHP devrait renvoyer est le {'success: true}'. – SW4