将图像数据从表单上传传递到要保存的功能

时间:2011-02-18 10:23:57

标签: php file-upload

我有一个上传表单,其中包含多个文件附件name =“attachment []”

我需要将上传的文件传递给处理文件保存的类中的函数(以及其他操作)。

功能:

public function saveFile($userId, $ticketId, $fileType, $fileName, $fileContent) 
{
    // Create directory
    $this->createDirectory($ticketId);

    $file = fopen(FILE_SAVE_PATH . "/" . $ticketId . "/" . $fileName, 'w');
    fwrite($file, $fileContent);
    fclose($file);
}

发送函数数据的循环

foreach($_FILES['attachment']['name'] as $index => $value) 
{
      $fw->models->file->saveFile(
                            $si->input->session('bug/userData/id'), 
                            $ticketId, 
                            '', 
                            $_FILES['attachment']['name'][$index],
                            base64_encode($_FILES['attachment']['tmp_name'][$index]));
}

正如您所看到的,我已经尝试了base64_encode,图像被“保存”但是当我尝试打开它时它已损坏。

谢谢。

2 个答案:

答案 0 :(得分:1)

看看这个http://www.tizag.com/phpT/fileupload.php似乎你遗漏了一些保存上传的细节。 BASE64_ENCODE($ _ FILES [ '附着'] [ 'tmp_name的值'] [$指数]));不是文件

在对数组做任何事情之前尝试print_r($ _ FILES)。

答案 1 :(得分:0)

public function saveUploadedFile($userId, $ticketId, $fileType, $fileName, $tempFile) 
{
    //create directory
    $this->createDirectory($ticketId);

    $savePath = FILE_SAVE_PATH . "/" . $ticketId . "/" . $fileName;
    return (move_uploaded_file($tempFile, $savePath)) ? TRUE : FALSE;   
}

通过将函数传递给临时路径来修复它,谢谢

$ _ FILES [ '附着'] [ 'tmp_name的值'] [$指数]