Datei-upload über EXTJS und der PHP
Lade ich meine Datei mit EXTJS und es ist gespeichert in den server
das problem ist, dass ich kann nicht get Sie ein-Erfolg-Funktion oder sogar die waitMsg läuft immer
Hier ist der Code
EXTJS-code :
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(){
}
}]
});
PHP-code :
<?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';
}
?>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatte ein ähnliches problem. Finden Sie heraus, dass Sie benötigen, um den content-type "text/html" auf der Seite, verarbeitet die Datei hochladen. 🙁
Wenn Sie Lesen Sie die Dokumentation für Ext.Daten.Verbindung, Sie werden sehen, dass
Dauerte eine Weile, um das zu finden, aber als stieß ich auf Ihre Frage, jemand anderes könnte tun, um mit einem ähnlichen problem!
hoffentlich helfen Sie!
Müssen Sie wieder eine JSON-response für Datei-uploads in der php-code verwenden entweder:
oder
Für weitere Informationen bitte an: http://dev.sencha.com/deploy/dev/docs/source/Action.html#cls-Ext.form.Action.Submit
Können Sie auch zurück, benutzerdefinierte Fehler, die Euch helfen, mit den verschiedenen Staaten, die Sie verwenden in Ihrem code.