我需要最简单的解决方案,用于从Ext应用程序上传文件。我是一个完整的php新手,所以我没有得到我收到的错误,只能猜出是什么导致了他们。在前端,我有一个简单的形式:
Ext.create('Ext.form.Panel', {
width: 300,
renderTo: Ext.getBody(),
frame: false,
title: 'File Upload Form',
bodyPadding: '10 10 0',
defaults: {
anchor: '100%',
allowBlank: false,
msgTarget: 'side',
labelWidth: 50
},
items: [{
xtype: 'filefield',
id: 'form-file',
emptyText: 'Select mpp file',
fieldLabel: 'File',
name: 'mpp-file',
buttonText: '',
buttonConfig: {
iconCls: 'upload-icon'
}
}],
buttons: [{
text: 'Upload',
handler: function(){
var form = this.up('form').getForm();
if(form.isValid()){
form.submit({
url: 'msp-load.php',
waitMsg: 'Loading data...',
success: function(fp, o) {
msg('Success', 'Data from .mpp file loaded ');
}
});
}
}
}]
})
msp-upload.php如下所示:
<?
if(isset($_FILES)){
$file_tmp = $_FILES['mpp-file']['tmp_name'];
$file_name = $_FILES['mpp-file']['name'];
$file_size = $_FILES['mpp-file']['size'];
//echo ($file_tmp.", ".$file_name.", ".$file_size);
if(is_uploaded_file($file_tmp)) {
if(move_uploaded_file($file_tmp, "tmp/$file_name")){
echo '{success: true}';
} else {
echo '{success: false}';
}
} else{
echo '{success: false}';
}
}
?>
点击“上传”后,我得到:
uncaught exception: Ext.JSON.decode():
You're trying to decode an invalid JSON String:
<br> <b>Warning</b>: move_uploaded_file(tmp/MSP1.mpp) [<a href="function.move-uploaded-file">function.move-uploaded-file</a>]: failed to open stream: No such file or directory in <b>/Library/WebServer/Documents/examples/MSProject_import/msp-load.php</b> on line <b>10</b><br>
<br> <b>Warning</b>: move_uploaded_file() [<a href="function.move-uploaded-file">function.move-uploaded-file</a>]: Unable to move '/private/var/tmp/phpJVDktB' to 'tmp/MSP1.mpp' in <b>/Library/WebServer/Documents/examples/MSProject_import/msp-load.php</b> on line <b>10</b><br> {success: false}
这是什么:'没有这样的文件......'错误来自?它无法找到上传的文件或其他内容?我的服务器用户具有管理员权限,因此与权限无关。
我正在使用内置的OSX 10.7服务器和PHP 5.3.6。 error.log中没有错误。
答案 0 :(得分:3)
如上所述,有两个可能的问题。
答案 1 :(得分:1)
你的msp-upload.php有错误信息:无法将'/ private / var / tmp / phpJVDktB'移动到'tmp / MSP1.mpp' 您必须设置具有写访问权限的完整目标路径
if(move_uploaded_file($file_tmp, dirname(__FILE__)."/tmp/$file_name")){
echo '{success: true}';
} else {
echo '{success: false}';
}