代码信号HTML5 - 尝试一次上传多个图片 [英] Codeigniter & HTML5 - Trying to Upload Multiple Images at Once
问题描述
查看看起来像这样
<?=form_open_multipart('upload/process');?>
<input type="file" multiple="multiple" name="userfile[]" id="userfile" />
<?=form_submit('upload', 'Upload');?>
<?=form_close();?>
我希望用户能够一次上传多个图像。一旦上传,我想在数据库中输入图像详细信息,最后将图像移动到uploads文件夹。
i want the user to be able to upload multiple images at once. once uploaded i want to make an entry of the image details in the database, and finally move the image to the uploads folder.
我有codeigniter的基本知识
i have basic knowledge of codeigniter
ps:我不想使用uploadify或类似的图片上传插件。尝试保持它尽可能轻的重量
ps: i dont want to use uploadify or similar image uploading plugins. trying to keep it as light weight as possible
更新
这是我得到的数组,当我尝试var_dump $ _FILES ['userfile'])。我应该使用什么样的循环来分隔各个图像的数据。
Update this is the kind of array i am getting when i try var_dump($_FILES['userfile']). what kind of loop should i use to separate the data of the respective images.
array
'name' =>
array
0 => string '01.jpg' (length=6)
1 => string '1 (26).jpg' (length=10)
'type' =>
array
0 => string 'image/jpeg' (length=10)
1 => string 'image/jpeg' (length=10)
'tmp_name' =>
array
0 => string 'C:\wamp\tmp\php2AC2.tmp' (length=23)
1 => string 'C:\wamp\tmp\php2AD3.tmp' (length=23)
'error' =>
array
0 => int 0
1 => int 0
'size' =>
array
0 => int 409424
1 => int 260343
推荐答案
$ _ FILES
数据发送一个不同的结构(由于 multiple =
属性),因此codeigniter不能处理它。在上传过程之前,请先进行此操作:
I ran into this problem aswell. The $_FILES
data is sent a diffent structure (due to the multiple=""
attribute) so codeigniter can't handle it. Prepend this before the uploading process:
$arr_files = @$_FILES['userfile'];
$_FILES = array();
foreach(array_keys($arr_files['name']) as $h)
$_FILES["file_{$h}"] = array( 'name' => $arr_files['name'][$h],
'type' => $arr_files['type'][$h],
'tmp_name' => $arr_files['tmp_name'][$h],
'error' => $arr_files['error'][$h],
'size' => $arr_files['size'][$h]);
然后在循环函数中使用:
Then in the loop function use this:
$this->load->library('upload');
$arr_config = array( 'allowed_types' => 'gif|jpg|png',
'upload_path' => 'url_path/');
foreach(array_keys($_FILES) as $h) {
// Initiate config on upload library etc.
$this->upload->initialize($arr_config);
if ($this->upload->do_upload($h)) {
$arr_file_data = $this->upload->data();
}
}
说明:
我只需将 $ _ FILES
的结构更改为默认 < input type =file/>
并运行一个循环,获取所有键的名称。
Explanation:
I simply change the structure of $_FILES
to the common structure which is sent on a default <input type="file" />
and the run a loop, fetching all their key names.
这篇关于代码信号HTML5 - 尝试一次上传多个图片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!