gpt4 book ai didi

php - 上传多个图像并将每个图像路径存储在mysql数据库的不同列中

转载 作者:行者123 更新时间:2023-11-29 21:04:00 25 4
gpt4 key购买 nike

大家好,

这是我的 HTML 表单。

 <form action="" id="uploadForm" class="col-md-8 col-md-offset-2" >
<h2 class="bold text-uppercase"></h2>
<br>
<div>
<div class="input-group form-group">
<label for=""> Upload Your Photo </label>
<br>
<input name="userImage[]" type="file" class="inputFile">
</div>
</div>
<div class="input-group form-group">
<label for=""> Upload Your Resume</label>
<br>
<input name="userImage[]" type="file" class="inputFile">
</div>
<div class="input-group form-group">
<label for=""> SSLC Mark Sheet</label>
<br>
<input name="userImage[]" type="file" class="inputFile">
</div>

我的 Ajax 代码是

$("#uploadForm").on('submit',(function(e) {
e.preventDefault();
$.ajax({
url: "upload.php",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
success: function(data){
alert(data);
},
error: function(){}
});
}));

还有我的 PHP 代码

<?php
$link = mysqli_connect("localhost","root","","spark") or die("Error ".mysqli_error($link));

if(is_array($_FILES)) {
foreach ($_FILES['userImage']['name'] as $name => $value){
if(is_uploaded_file($_FILES['userImage']['tmp_name'][$name])) {
$sourcePath = $_FILES['userImage']['tmp_name'][$name];
$targetPath = "uploads/".$_FILES['userImage']['name'][$name];
if(move_uploaded_file($sourcePath,$targetPath)) {
$query = "INSERT INTO filedetails(filepath) VALUES ('$fileTarget')";
$link->query($query) or die("Error : ".mysqli_error($link));

?>
<img src="<?php echo $targetPath; ?>" width="150px" height="180px" />
<?php
}}}}

?>

现在我的代码中发生的情况是,如果我上传 3 个图像,它存储在图像文件夹中,并将文件路径详细信息插入表单列名称中作为文件路径。我想要做的是我想从数组 userImage 中分割每个图像这样我将在数据库中将第一个图像存储在第 1 列中,将第二个图像存储在第 2 列中,类似地,可以在数据库中存储任意数量的图像。为了简要说明我如何从该数组 $_FILES['userImage'] 中获取每个值。如果有人能告诉我解决方案,那将对我有很大帮助。提前致谢。

最佳答案

这是我的建议:

  • 如果要保存的照片数量是固定的,比如 (3) 张照片每人在表格中提供 (3) 列照片。那很容易。
  • 如果要保存的照片数量不固定,您可能需要将其保存放在一列中,并使用例如分号 (;) 分隔它们。该列必须是灵活的,设置为像VARCHAR(100) (不过这个不太好)

Example: image_file_path1;image_file_path2;image_file_path3

  • 当你检索数据时(如上面的例子),你必须切片每个 image_file_path 都用分号来显示它或放入 <input> field (无论你喜欢做什么)。

-或-

  • 您可能想要规范化您的表格。例如你有一个人物表,要上传的照片可以超过(1),那么为照片创建另一个表。 photo_tbl例如将有列 id , person_id ,和img_file .
<小时/>

在MySQL中,您可以使用SUBSTRING_INDEX('try;try', ';')分割字符串。

See String Functions

在 PHP 4+ 中,您可以使用 explode(";", $string)分割字符串并将它们存储在数组变量中。

See EXPLODE

在 JQuery 中,您可以使用 string.split(';');分割字符串。

See Split

关于php - 上传多个图像并将每个图像路径存储在mysql数据库的不同列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36979207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com