- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以使用 CodeIgniter 的上传库通过 $_FILE var 进行上传?
$this->upload->do_upload('field_name')
它需要 html 字段名称作为参数。但我需要使用 de $_FILES 进行上传。
问题是:我必须能够在提交之前向表单添加更多照片。我使用 (+) 按钮克隆字段。像这样:
HTML:
...
<span onclick='duplicarCampos()'> + </span>
<div class="form-group">
<div id="destino" class="col-lg-12">
<div id="fabricas" class="col-lg-4 fabricas">
<label>Imagem:</label>
<input name="img[]" type="file" class="form-control">
<label>Link:</label>
<input name="link[]" type="text" class="form-control">
</div>
</div>
</div>
...
我正在使用 AJAX 提交表单,如下所示:
提交的 JS:
...
var imagens = $("input[name='img[]']").map(function () {
return $(this).prop("files")[0];
}).get();
var links = $("input[name='link[]']").map(function () {
return $(this).val();
}).get();
var form_data = new FormData();
for(i=0; i<imagens.length; i++){
form_data.append("imagens_"+i,imagens[i]);
form_data.append("links_"+i,links[i]);
}
form_data.append("lastIndice",(i-1));
$.ajax({
...
});
...
在我的 PHP Controller 中,我这样接收它们:
...
for($i=0; $i < $lastIndice+1; $i++){
$links[$i] = $_POST["links_".$i];
}
for($j=0; $j < $lastIndice+1; $j++){
$imagens[$j] = $_FILES["imagens_".$j];
}
...
现在,我想使用 CodeIgniter 的上传库 上传每张图片。但我知道它起作用的唯一方法是使用 html 字段名称,而不是 $_FILES 作为 do_upload() 的参数...
使用上传库:
...
if(!$ci->upload->do_upload($this->nome_campo)) {
...
}
...
我可以使用 PHP“正常”上传,但我是 CodeIgniter 的新手,我想学习如何使用它做事。
最佳答案
从您当前迭代的外观来看:
for($j=0; $j < $lastIndice+1; $j++){
$imagens[$j] = $_FILES["imagens_".$j];
}
看起来您的 $_FILES
数组是以这种方式构造的(示例):
(
[imagens_0] => Array
(
[name] => foo.txt
[type] => text/plain
[tmp_name] => /tmp/phpYzdqkD
[error] => 0
[size] => 123
)
[imagens_1] => Array
(
[name] => bar.txt
[type] => text/plain
[tmp_name] => /tmp/phpeEwEWG
[error] => 0
[size] => 456
)
)
Codeigniter 的 do_upload()
需要包含文件信息的 $_FILES 数组的键值。因此,通过以这种方式更改 for
循环,您应该能够上传它:
for($j=0; $j < $lastIndice+1; $j++){
$this->upload->do_upload("imagens_".$j);
}
关于javascript - 使用 $_FILES 而不是字段名称的 codeigniter upload->do_upload(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48690865/
我制作了一个可以上传特定文件类型的页面。它在我的本地开发中运行良好,但在生产中运行良好。它不会传递 do_upload() 函数。除此之外什么都不显示。 $path = 'uploads'; echo
我想在重定向链接上显示内容插入的成功消息。这是我的 Controller 代码:- public function do_upload($field) { $config['uploa
我正在尝试上传文件。我选择了一个文件,然后提交了它,但是 $this->upload->do_upload() 的结果总是错误的。 这是我的表格; 这是我的 C
我正在使用 CodeIgniter 编写图片上传表单。我以前有类似的代码用于不同的站点。目前 - 用于接收多部分/表单数据图像的代码静默失败。在配置服务器/脚本时我收到错误,例如不正确的文件路径、禁止
是否可以使用 CodeIgniter 的上传库通过 $_FILE var 进行上传? $this->upload->do_upload('field_name') 它需要 html 字段名称作为参数
我是一名优秀的程序员,十分优秀!