【发布时间】:2015-11-07 10:27:16
【问题描述】:
我正在使用 codeigniter 3,在 do_upload() 函数中出现类似 You did not select a file to upload. 的错误,但正常的 php 函数 move_uploaded_file() 工作正常。我参考了stackoverflow的大部分答案,但我没有得到解决方案。
我认为它可能在wamp 问题中,但我没有弄清楚它在哪里。
如果此代码在您的机器上运行,那么它将在我的 wamp php 或 Apache 设置中出现问题。
查看:(upload.php)
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php echo form_open_multipart('welcome/do_upload'); ?>
<input id="sfile" type="file" name="file">
<input type="submit" value="Submit">
<?php echo form_close(); ?>
</body>
</html>
控制器:(welcome.php)
function do_upload()
{
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload()) //not working
{
$error = array('error' => $this->upload->display_errors());
var_dump($error);
}
else
{
$data = array('upload_data' => $this->upload->data());
}
echo $basename = $_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'],$config['upload_path'].$basename);
// move_uploaded_file() works fine
}
【问题讨论】:
-
尝试在
$this->upload->do_upload('file')中传递字段名并检查 -
@Saty 是的,我试过同样的问题
-
检查您上传的文件的大小,因为您设置了
$config['max_size'] = '100';。这意味着您将无法上传超过 100 kb 的文件大小 -
另外请检查您上传目录的权限。
-
@Saty 您的第一个解决方案是正确的。在我这样尝试之前,但我现在没有得到它正在工作。我现在正在测试
标签: php codeigniter