文件上传失败!急!!!
本帖最后由 liaow10 于 2017-3-30 00:07 编辑看了论坛里面的帖子,看了手册,发现大多数人上传文件失败都是因为 name 的问题,但是我基本上是直接拿手册上面的源码放进去了,对比了name也没问题,但是$_FILES的值一直都是空。我使用网页的方式上传就是空的,我自己用postman测试就能检测到,求助!急求!!!!
controllers/Welcome.php
22 public function index()
23 {
24 $this->load->helper('url');
25 $this->load->helper('form');
26 $this->load->view('hehe');
27 }
28
29 public function do_upload()
30 {
31 print_r($_FILES);
32 $this->load->library('upload');
33 if (!$this->upload->do_upload('userfile'))
34 {
35 echo $this->upload->display_errors();
36 }
37 else
38 {
39 print_r($this->upload->data());
40 }
41 }
views/hehe.php
1 <html>
2 <head>
3 <title>Upload Form</title>
4 </head>
5 <body>
6
7
8 <?php echo form_open_multipart('welcome/do_upload');?>
9
10 <input type="file" name="userfile" size="20" />
11
12 <br /><br />
13
14 <input type="submit" value="upload" />
15
16 </form>
17
18 </body>
19 </html>
config/upload.php
1 <?php
2 defined('BASEPATH') OR exit('No direct script access allowed');
3
4 $config['upload_path'] = UPLOAD_FILE_PATH;
5 $config['allowed_types'] = '7z';
6 $config['overwrite'] = FALSE;
7 // $config['max_size'] = 0;
真的不明白为什么?求问!项目一直卡在这里,很焦急!!!
谢谢!下面是附图:
页面点上传前:
页面点击上传后:
使用postman的结果:
postman的详细code:
你完全可以不用 <?php echo form_open_multipart('welcome/do_upload');?> 把他换成<form action="'welcome/do_upload" method="post" enctype="multipart/form-data"> 试试 你要想用<?php echo form_open_multipart('welcome/do_upload');?> 在autoload.php 自动载入 $autoload['helper'] = array('form'); $_FILES 里是空的话,那你要看看你的 HTML 是不是写对了,只要是浏览器正确提交上传,$_FILES 不可能为空。 phillu 发表于 2017-3-30 10:32
你完全可以不用 把他换成 试试
感谢!!!按照你说的换成下面这种就可以上传了,还需要看下原因,因为这个代码毕竟只是测试代码,我这边项目的正式代码有问题,才按照手册的代码写来测试的。
1 <html>
2 <head>
3 <title>Upload Form</title>
4 </head>
5 <body>
6
7 <form action="index.php/welcome/do_upload" method="post" enctype="multipart/form-data">
8
9 <input type="file" name="userfile" size="20" />
10
11 <br /><br />
12
13 <input type="submit" value="upload" />
14
15 </form>
16
17 </body>
18 </html>
phillu 发表于 2017-3-30 10:37
你要想用 在autoload.php 自动载入 $autoload['helper'] = array('form');
是载入helper的问题吗,我在构造的时候加上也没问题吧? Hex 发表于 2017-3-30 10:49
$_FILES 里是空的话,那你要看看你的 HTML 是不是写对了,只要是浏览器正确提交上传,$_FILES 不可能为空。 ...
按照一楼的方法已经调通CI的手册代码了,但是不明白原因,手册上面的代码怎么不能直接运行成功。$_FILES 为空就肯定是浏览器没有正确上传是吗?浏览器上传是否一定需要设置 enctype="multipart/form-data" liaow10 发表于 2017-3-30 10:58
是载入helper的问题吗,我在构造的时候加上也没问题吧?
对呀你载入 helper form 有问题 你直接放在浏览器了访问应该会报错的 Hex 发表于 2017-3-30 10:49
$_FILES 里是空的话,那你要看看你的 HTML 是不是写对了,只要是浏览器正确提交上传,$_FILES 不可能为空。 ...
还是有问题,小文件可以,笔记几百K的文件就行,几十兆的就提示$_FILES是空的 或许是你文件大小的问题呢 apache也有默认上传文件大小的上限啊,虽然我没用过form那个helper,但是我觉得。。。几十兆一定超了。。。
页:
[1]