如何解决codeigniter图片上传并调整大小-swfupload
|| 目前,我正在对网站的一部分进行编码,允许用户上传图片,然后选择要裁剪的图片区域。我想要这样的图像,而无需用户提交表单即可上传图像,因此我使用了名为swfupload的工具,可以成功上传图像,但是无法获得swfupload来创建缩略图或什至无法阅读缩略图方法。 下面是我的代码, 的PHPpublic function upload()
{
$config[\'upload_path\'] = \"./media/uploads/users\";
$config[\'allowed_types\'] = \'gif|jpg|png\';
$config[\'max_size\'] = \'1000\';
$config[\'max_width\'] = \'1024\';
$config[\'max_height\'] = \'768\';
$config[\'encrypt_name\'] = TRUE;
$this->load->library(\'upload\',$config);
if ( ! $this->upload->do_upload(\'Filedata\'))
{
$error = array(\'error\' => $this->upload->display_errors());
//die(print_r($error));
}
else
{
$this->file = $this->upload->data();
echo $this->file[\'file_name\'];
}
}
public function thumbnail()
{
//lets just try and get thumbnail() talking to swfupload
echo 1;
}
swfupload js
window.onload = function () {
swfu = new SWFUpload({
// Backend Settings
upload_url: \"http://lcl.moovjob.com/index.php/admin/users/upload\",post_params: {\"PHPSESSID\": \"<?php echo $this->session->userdata(\'session_id\'); ?>\" },// File Upload Settings
file_size_limit : \"5 MB\",// 5MB
file_types : \"*.jpg\",file_types_description : \"JPG Images\",file_upload_limit : \"0\",// Event Handler Settings - these functions as defined in Handlers.js
// The handlers are not part of SWFUpload but are part of my website and control how
// my website reacts to the SWFUpload events.
file_queue_error_handler : fileQueueError,file_dialog_complete_handler : fileDialogComplete,upload_progress_handler : uploadProgress,upload_error_handler : uploadError,upload_success_handler : uploadSuccess,upload_complete_handler : uploadComplete,// Button Settings
button_image_url : \"images/SmallSpyGlassWithTransperancy_17x18.png\",button_placeholder_id : \"spanButtonPlaceholder\",button_width: 180,button_height: 18,button_text : \'<span class=\"button\">Select Images <span class=\"buttonSmall\">(2 MB Max)</span></span>\',button_text_style : \'.button { font-family: Helvetica,Arial,sans-serif; font-size: 12pt; } .buttonSmall { font-size: 10pt; }\',button_text_top_padding: 0,button_text_left_padding: 18,button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,button_cursor: SWFUpload.CURSOR.HAND,// Flash Settings
flash_url : \"/media/flash/swfupload.swf\",custom_settings : {
upload_target : \"divFileProgressContainer\"
},// Debug Settings
debug: true
});
};
我的Handlers js,尤其是上传成功方法,
function uploadSuccess(file,serverData) {
try {
var progress = new FileProgress(file,this.customSettings.upload_target);
if (serverData.substring(0,7) === \"FILEID:\") {
addImage(\"http://local.test.com/index.php/admin/users/thumbnail\");
progress.setStatus(\"Thumbnail Created.\");
progress.toggleCancel(false);
} else {
addImage(\"images/error.gif\");
progress.setStatus(\"Error.\");
progress.toggleCancel(false);
alert(serverData);
}
} catch (ex) {
this.debug(ex);
}
}
我暂时要做的就是上传图像,然后返回1,所以我知道swfupload正在与控制器通信。我得到的只是上传成功或错误。
解决方法
您可以将jquery文件uplaoder与jquery的Image area select插件一起使用。
这是图像区域选择插件的URL:
http://odyniec.net/projects/imgareaselect/
,我有些困惑,为什么不将缩略图方法添加到上传功能的末尾?据我所料,没有必要单独进行这些操作。
您已经在上传函数中检查了上传是否成功,因此在返回任何数据之前,请将文件名/目录传递给缩略图函数,创建缩略图,然后以这种方式将成功或失败返回给您的js。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。