首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将照片上传到服务器/rackspace cloudfiles - php/codeigniter

将照片上传到服务器/rackspace cloudfiles - php/codeigniter
EN

Stack Overflow用户
提问于 2012-10-11 17:52:26
回答 1查看 661关注 0票数 3

我正在使用这个存储库将照片从我的电脑上传到服务器上。当我试图上传一个名为mylogo.jpg的文件时,会收到一个错误,上面写着:

无法打开读取文件: /tmp/php0d4X5Ny/mylogo.jpg

我需要弄清楚为什么我会犯这个错误。

下面是来自控制器(cloudfiles.php)的代码:

代码语言:javascript
复制
        public function add_local_file()
        {
                $file_location = $_FILES['userfile']['tmp_name'].'/';
                $file_name = $_FILES['userfile']['name'];

                $this->cfiles->do_object('a', $file_name, $file_location);

                $this->_show_errors('Image Added!');
        }

对象函数在这里 (第151行)。这是上传视图

代码语言:javascript
复制
<?php echo form_open_multipart('cloudfiles/add_local_file'); ?>

<input type="file" name="userfile" size="20" />

<input type="submit" value="upload" />

<?php echo form_close(); ?>

我搜索了cloudfiles库,发现“无法打开文件进行读取”错误是此函数中的一个例外:

代码语言:javascript
复制
function load_from_filename($filename, $verify=true)
    {
        $fp = @fopen($filename, "r");
        if (!$fp) {
            throw new IOException("Could not open file for reading: ".$filename);
        }

        clearstatcache();

        $size = (float) sprintf("%u", filesize($filename));
        if ($size > MAX_OBJECT_SIZE) {
            throw new SyntaxException("File size exceeds maximum object size.");
        }

        $this->_guess_content_type($filename);

        $this->write($fp, $size, $verify);
        fclose($fp);
        return True;
    }

我已经看了好几个小时了,看不出出了什么问题。顺便说一句,没有看到任何php错误,只是上面提到的一个错误。新的堆栈溢出(频繁浏览器,新帐户),所以感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-11 18:06:30

我认为您不理解$_FILES数组是如何工作的。一旦文件被上传,它就位于$_FILES['userfile']['tmp_name'],并且没有它的原始名称。

如果希望上传文件的原始名称,则需要执行以下操作:

代码语言:javascript
复制
public function add_local_file()
{
    $file_location = '/tmp/';
    $file_name     = $_FILES['userfile']['name'];

    if(move_uploaded_file($_FILES['userfile']['tmp_name'], $file_location . $file_name)){

        $this->cfiles->do_object('a', $file_name, $file_location);

    }

    $this->_show_errors('Image Added!');
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12845616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档