我用EXTJS上傳我的文件,它保存在服務器 的問題是,我不能讓一個成功的功能,甚至waitMsg始終運行 這裏是代碼 EXTJS的代碼:文件上傳
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代碼:
<?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';
}
?>
它不起作用,我的上傳表單在我點擊一個按鈕時顯示的窗口中,這可能是問題嗎? – 2010-09-23 19:14:33
否 - 提供處理服務器端上載的PHP腳本只返回JSON,這應該是足夠的(即PHP應該返回的唯一東西,即'{success:true}')。 – SW4 2010-09-27 08:36:21