如果要完成proccses,则将文件从一个if传递到另一个if

时间:2013-12-23 07:32:50

标签: php

我已经打开了相对于此问题的问题(我对主持人审查提出了问题),但没有人完成帮助我......我卡住了。

我有类似的东西:

if ($proc == "question")
{
    // Handle some normal form 'contact us'.

    // ... Some proccses code when submited via ajax ...

    $fileElementName = 'ImageBrowse';

    if (isset($_FILES[$fileElementName]) && !empty($_FILES[$fileElementName]))
    {
        // I want that file come to here from 'sendQueuploadimg'.
        $file = $_FILES[$fileElementName]['tmp_name']; 
    var_dump($file);
    }
}
else if ($proc == "sendQuestionUploadImg")
{
    // Handle img upload via ajax.

    $fileElementName = 'ImageBrowse';

    $uploadsDirectory = '../uploads/'; 

    $allowedTypes = array
        (
            'image/jpeg',
            'image/jpg',
            'image/pjpeg',
            'image/pjpeg',
            'image/png',
            'application/x-rar-compressed'
        );

    // ... Some more proccses code when submited via ajax ...

    // In the end if goes well...
    // I want to pass the file array to the other if above.

    if (isset($msg) && !empty($msg))
    {
        $_FILES[$fileElementName]['tmp_name'];
        // How to pass the file to above if 'question'?
    }
    else
    {
        @unlink($_FILES[$fileElementName]); 
    }
}

我试图创建一个类并将文件转移到类内部运行,但它有效,但是当我尝试从我得到的null函数中提取文件时,我尝试了更多10其他方式将文件传输到那里,但没有succses。

<?php
    class image
    {
        public $file;
        public function setImgTmp($file)
        {
            // When I do var_dump I will see the file here
            // But I can't pull it out.
            $this->file = $file;
            return $this->file;
        }
    };
    $file = new image();
?>

上面是我尝试传递文件的几次尝试之一,但它无法工作,我无法在没有$file参数的情况下调用该函数。

任何人都知道如果将tmp文件传递到另一个文件,如果上面提交的那么?

1 个答案:

答案 0 :(得分:3)

知道了:两个“ifs”反映了用户会话中的两种状态。虽然有点复杂的英语,但它不是if,而是状态变量$proc给出了线索​​,问题是将结果从一个状态传递给另一个状态。

这通常在$ _SESSION变量中完成:

....
if($proc == "question"){// Handle some normal form 'contact us'.

    $fileElementName = $_SESSION['imgfilename']; // make some error handing on null !!

....

 ....
 if(isset($msg) && !empty($msg)){

      $_SESSION['imgfilename'] = $_FILES[$fileElementName]['tmp_name']; 
 ....

注释:您需要先启动会话才能使用$ _SESSION变量,请参阅文档!