如何解决多次上传未保存到数据库
|var a=0;
function _add_more() {
var txt = \"<br><input type=\\\"file\\\" name=\\\"item_file[]\\\"><br><input type=\\\"text\\\" name=\\\"text\"+a+\"\\\">\";
document.getElementById(\"dvFile\").innerHTML += txt;
alert(a);
a=a+1;
}
我正在使用多个文件上传并具有多个标题。我无法在标题中保存文本。您能告诉我正确的语法$_POST[\"text\"]
,我应该在哪里增加我要递增的语法。
$insert=mysql_query(\"insert into image_upload set title=\'\".$_POST[\"text\"].\"\',image=\'\".$filen.\"\'\") or die(mysql_error());
解决方法
约翰·博克说的是真的。
但是您将需要遍历它们以将它们插入数据库。
一种简单的方法是将
name=\\\"text\"+a+\"\\\"
,name=\\\"text[]\\\"
(例如文件上传元素)
因此,您将获得一系列标题。
因此在PHP中:
foreach($_POST[\"text\"] as $title){
$insert=mysql_query(\"insert into image_upload set title=\'\".$title.\"\',image=\'\".$filen.\"\'\") or die(mysql_error());
}
另外,为什么不在JavaScript中使用ѭ8而不是转义ѭ9呢?
您可能在浏览上载文件时浏览标题。
, defined1ѭ未定义,字段名称为$_POST[\"text0\"]
,$_POST[\"text1\"]
,$_POST[\"text2\"]
,...。
您应该将a
添加到隐藏字段中,然后您就会知道输入的数量。
, 您可以使用与文件上传字段相同的策略来命名标题字段:
var txt = \"<br><input type=\\\"file\\\" name=\\\"item_file[]\\\"><br><input type=\\\"text\\\" name=\\\"text[]\"\\\">\";
请注意,我将它们全部命名为text[]
。现在在PHP中,我有了变量$_POST[\'text\']
,它本身就是一个包含所有标题的数组。
要访问PHP中的文件和标题,您可以执行以下操作:
for($i=0; $i<length($_FILES[\'item_file\']); $i++) {
print $_FILES[\'item_file\'][$i][\'name\'] +\"<br>\";
print $_POST[\'text\'][$i] + \"<br>\";
}
另外,我有义务通知您,在没有正确验证输入的情况下执行mysql查询势必会导致您被黑。请考虑使用:
$insert=mysql_query(\"insert into image_upload set title=\'\". mysql_real_escape_string($_POST[\"text\"]) .\"\',image=\'\". mysql_real_escape_string($filen) .\"\'\") or die(mysql_error());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。