我在我正在处理的Codeigniter应用中上传图片时遇到问题。代码在我的电脑上运行时(ubuntu)就好了,正如教程中给出的那样。但是当我在我的(centos)服务器上尝试这个时,它会出错 “你没有选择要上传的文件。”。
仅供参考,我会在此处粘贴代码。
Controller- Upload1.php
<?php
class Upload1 extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
}
function index()
{
$this->load->view('upload_form1', array('error' => ' ' ));
}
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())
{
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form1', $error);
}
else
{
$data = array('upload_data' => $this->upload->data());
$this->load->view('upload_success1', $data);
}
}
}
?>
表格 - upload_form1.php
<html>
<head>
<title>Upload Form</title>
</head>
<body>
<?php echo $error;?>
<?php echo form_open_multipart('upload1/do_upload');?>
<input type="file" name="userfile" size="20" />
<br /><br />
<input type="submit" value="upload" />
</form>
</body>
</html>
成功Page- upload_success1.php
<html>
<head>
<title>Upload Form</title>
</head>
<body>
<h3>Your file was successfully uploaded!</h3>
<ul>
<?php foreach ($upload_data as $item => $value):?>
<li><?php echo $item;?>: <?php echo $value;?></li>
<?php endforeach; ?>
</ul>
<p><?php echo anchor('upload1', 'Upload Another File!'); ?></p>
</body>
</html>
可能是什么问题? 我将“uploads”目录设置为777.所以这不太可能是原因。我也尝试了几种类似问题的解决方案,但是没有用。错过了一些明显的东西吗?
版本: 对于Server- PHP 5.3.13(cli) 我的PC-PHP 5.3.3。
Codeigniter在本地和远程机器上是相同的 - 即2.1.3
我将非常感谢您的建议!!
非常感谢
答案 0 :(得分:0)
根据您的代码,我不知道是否有任何表单验证来验证提交的输入是否对您的上传配置有效。您应该首先做什么:检查您尝试上传的文件是否适合上传配置。我认为CI的上传类不包括来自无效输入表单的错误。 CMIIW。
答案 1 :(得分:0)
通常,如果您没有将名称视为“userfile”,则会出现错误,因此请在任何浏览器中通过“查看源”检查输出