我一直在环顾四周,并没有找到符合我需求的解决方案。 所以让我们切入追逐。
SCENARIO:用户将填写一些文本表单,这些表单的输入将存储到数据库表中(文本输入正常工作并存储到数据库中),用户将以相同的形式上传7个文件和文件的路径将存储在不同列中的同一个表中,例如image1 image2 image3等,但是在同一行中,所以当需要该行的id时,也将检索文件路径但是我无法构建查询到将路径插入数据库,香港专业教育学院管理商店只有一个文件,并将其路径存储到数据库,但我正在努力与多个文件,我只是不知道如何检查for循环是否已完成以及如何构建查询以插入所有upladed文件的路径分别在各自的列中。服务器正在运行PHP和postgreSQL
提前感谢,希望你能帮助我!
<?php
include '../include/dbase.php';
$result = '';
if (isset($_FILES['upload'])) {
$nombre = $_FILES['upload']['name'];
$ntemporal = $_FILES['upload']['tmp_name'];
$tipo = $_FILES['upload']['type'];
$tamaño = $_FILES['upload']['size'];
$error = $_FILES['upload']['error'];
$file_name_all = '';
for($i=0; $i<count($_FILES['upload']['name']); $i++)
{
$tmpFilePath = $_FILES['upload']['tmp_name'][$i];
if ($tmpFilePath != "")
{
$path = "../imagenes/propiedades/";
$name = $_FILES['upload']['name'][$i];
$size = $_FILES['upload']['size'][$i];
list($txt, $ext) = explode(".", $name);
$file= time().substr(str_replace(" ", "_", $txt), 0);
$info = pathinfo($file);
$filename = $file.".".$ext;
if(move_uploaded_file($_FILES['upload'['tmp_name'][$i], $path.$filename))
{
//my guess is an if check here to see if for
loop has finished all the uploads, and if returns true a try and
catch with the sql query to upload only the path of each file the
row containing all other user input text.
}
}
}
}
?>
答案 0 :(得分:1)
最好将文件保存在files / $ id_user / ..等目录以及数据库中的名称中。
您可以为文件制作表格; 例如,带有id_user + file_name的表文件。
如果您希望所有人都在同一个表中,您可以将所有文件的名称用逗号分隔;或者选择它们并爆炸后将它们放在数组中..
在您的代码中,最好使用&#39;而且#34;因为php会尝试在&#34;中找到变量。 &#34; ..并且没有时间......
$filename = $file.'.'.$ext; $filename = $file.".".$ext;;
如果你写:
$test = 'hello';
echo 'i tell you $test'; => i tell you $test
echo "i tell you $test"; => i tell you hello
答案 1 :(得分:0)
在你的表格中,创建列file_0,file_1,.... 之后,你可以像这样保存在你的桌子中:
if(move_uploaded_file($_FILES['upload'['tmp_name'][$i], $path.$filename))
{
$sql = "UPDATE `your_table` SET `file_$i` = '$path.$filname' WHERE `id` = '$id_user'";
//execute your $sql
}