将 Uploadify 与 Codeigniter 框架结合使用

问题描述 投票:0回答:1

我正在尝试将 Uploadify v2.1.4 与 Codeigniter v2.1 一起使用。我知道 flash 存在问题,没有将会话数据发送到控制器,这在 codeigniter 中返回 http 302 错误而不是上传脚本。

我见过各种解决方案,但它们都适用于旧版本的框架,特别是 codeigniter。有没有人找到最近的解决方案将 uploadify 与 CI 集成?我可以通过将上传脚本放在 CI 目录之外来让脚本工作,但我想利用 CI 功能,所以这对我来说不是一个好的解决方案。

确认我收到的错误消息是“HTTP 302”...即禁止 uploadify 脚本访问 /a/reports/uploadify

这是jquery

$(document).ready(function() {
  $('#file_upload').uploadify({
    'uploader'  : '/swf/uploadify.swf',
    'script'    : '/a/reports/uploadify',
    'cancelImg' : '/img/cancel.png',
    'folder'    : '/uploads/originals', 
    'auto'      : true,
    'fileExt'   : '*.jpg;*.pdf;*.doc',
    'fileDesc'  : 'jpg, pdf or doc',
    'hideButton': false,
    'removeCompleted':false
  });

我的任何控制器

class Reports extends MY_Controller
{
public function uploadify()
{
    log_message('info','uploadify method being called');

    if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

    log_message('info', 'File Upload: Temp file created '.$tempFile);
    log_message('info', 'File Upload: Target path for upload '.$targetPath);
    log_message('info', 'File Upload: Target file for upload '.$targetFile);

    $fileTypes  = str_replace('*.','',$_REQUEST['fileext']);
    $fileTypes  = str_replace(';','|',$fileTypes);
    $typesArray = split('\|',$fileTypes);
    $fileParts  = pathinfo($_FILES['Filedata']['name']);

    if (in_array($fileParts['extension'],$typesArray))
    {       
        move_uploaded_file($tempFile,$targetFile);
        echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
    }
    else 
    {
        log_message('error', 'File Upload: Invalid file type uploaded ['.$fileParts['extension'].']');
        echo 'Invalid file type.';
    }
    }
}
}
php codeigniter codeigniter-2 uploadify
1个回答
2
投票

最终我找到了这个解决方案。不是最好的,但仍然是一个很好的解决方法。

http://ellislab.com/forums/viewthread/150550/

© www.soinside.com 2019 - 2024. All rights reserved.