我正在使用文件上传器jquery插件,以便在我的网站上上传ajax文件。然而,我就是不明白哪里出了问题,为什么它不能工作。
插件:http://fineuploader.com/index.html
我的代码:
我直接从他们的演示中获取了代码:
$(document).ready(function() {
$fub = $('#fine-uploader-basic');
$messages = $('#messages');
var uploader = new qq.FileUploaderBasic({
button: $fub[0],
action: 'http://localhost/script/file_upload/upload_test',
debug: true,
allowedExtensions: ['jpeg', 'jpg', 'gif', 'png'],
sizeLimit: 204800, // 200 kB = 200 * 1024 bytes
onSubmit: function(id, fileName) {
$messages.append('<div id="file-' + id + '" class="alert" style="margin: 20px 0 0"></div>');
},
onUpload: function(id, fileName) {
$('#file-' + id).addClass('alert-info')
.html('<img src="client/loading.gif" alt="Initializing. Please hold."> ' +
'Initializing ' +
'“' + fileName + '”');
},
onProgress: function(id, fileName, loaded, total) {
if (loaded < total) {
progress = Math.round(loaded / total * 100) + '% of ' + Math.round(total / 1024) + ' kB';
$('#file-' + id).removeClass('alert-info')
.html('<img src="client/loading.gif" alt="In progress. Please hold."> ' +
'Uploading ' +
'“' + fileName + '” ' +
progress);
} else {
$('#file-' + id).addClass('alert-info')
.html('<img src="client/loading.gif" alt="Saving. Please hold."> ' +
'Saving ' +
'“' + fileName + '”');
}
},
onComplete: function(id, fileName, responseJSON) {
if (responseJSON.success) {
$('#file-' + id).removeClass('alert-info')
.addClass('alert-success')
.html('<i class="icon-ok"></i> ' +
'Successfully saved ' +
'“' + fileName + '”' +
'<br><img src="img/success.jpg" alt="' + fileName + '">');
} else {
$('#file-' + id).removeClass('alert-info')
.addClass('alert-error')
.html('<i class="icon-exclamation-sign"></i> ' +
'Error with ' +
'“' + fileName + '”: ' +
responseJSON.error);
}
}
});
});HTML:
<div id="fine-uploader-basic" class="btn btn-success">
<i class="icon-upload icon-white"></i> Click to upload
</div>
<div id="messages"></div>PHP:
public function upload_test() {
$upload = move_uploaded_file('./user_files', $_FILES['qqfile']['tmp_name']);
if($upload) {
echo json_encode(array('success' => true));
} else {
echo json_encode(array('success' => false, 'error' => $upload));
}
}我认为问题出在PHP上,但我不知道我做错了什么。在我发疯之前请帮帮我。
谢谢。
发布于 2012-11-19 01:31:52
我没有读你的js和html部分,但你需要改变你的PHP部分。看看他是怎么做的
发布于 2012-11-27 19:50:11
删除action: 'http://localhost/script/file_upload/upload_test',并使用更改
request: {
// path to server-side upload script
endpoint: 'script/file_upload/upload_test/php.php'
}在您的php.php文件中也取消注释:
$allowedExtensions = array("jpeg", "jpg", "bmp", "png");
$sizeLimit = 10 * 1024 * 1024;
$uploader = new qqFileUploader($allowedExtensions, $sizeLimit);
$result = $uploader->handleUpload('uploads/'); //folder for uploaded files
echo htmlspecialchars(json_encode($result), ENT_NOQUOTES);发布于 2013-01-09 17:59:55
如果有帮助,这里是我的设置:
-- jquery.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Fine Uploader Demo</title>
<link href="client/fineuploader.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<div id="fine-uploader"></div>
<script src="client/jquery.fineuploader-3.1.1.min.js"></script>
<script>
function createUploader() {
var uploader = new qq.FineUploader({
debug: true,
// Pass the HTML element here
element: document.getElementById('fine-uploader'),
// or, if using jQuery
// element: $('#fine-uploader')[0],
// Use the relevant server script url here
// if it's different from the default “/server/upload”
request: {
endpoint: 'php.php'
}
});
}
window.onload = createUploader;
</script>
</body>
</html>- php.php (与jquery.html在同一文件夹中)
以下行已取消注释:
// list of valid extensions, ex. array("jpeg", "xml", "bmp")
$allowedExtensions = array();
// max file size in bytes
$sizeLimit = 10 * 1024 * 1024;
//the input name set in the javascript
$inputName = 'qqfile';
$uploader = new qqFileUploader($allowedExtensions, $sizeLimit, $inputName);
$result = $uploader->handleUpload('uploads/');
header("Content-Type: text/plain");
echo htmlspecialchars(json_encode($result), ENT_NOQUOTES);uploads文件夹具有777权限
MAMP注意:上传时将抛出stream_copy_to_stream()错误。解决方案:将php.php中的第58行由$temp = tmpfile();改为$temp = fopen("php://temp","wb");//$temp = tmpfile();
希望这对某些人有帮助。
https://stackoverflow.com/questions/13315180
复制相似问题