语言:PHP / MySQL的
我打算在我心里,我真的现在问...我有一个多文件上传表单:
<input type="file" name="fileupload[]" multiple>
随着一些JavaScript的帮助下,在此输入的每处更改,其追加另一个里面输入文件名列表,+一个格式化字符串(从文件名中抢下),所以平变化,我们有如下的布局 (假设我们只添加了一些图像):
几乎类似: http://jsfiddle.net/pxfunc/WWNnV/4/
//这样布局的HTML表示将...(假设我们添加3个图像)
<input type="file" name="fileupload[]" multiple>
- 图像名称-1.JPG
<input type="text" value="Image Name 1" name="keyword[]">
- justsome_file.png
<input type="text" value="Justsome File" name="keyword[]">
- some_Img-031.gif
<input type="text" value="Some Img 031" name="keyword[]">
<input type="submit" value="Upload">
我这样说,因为除了上传文件, 我也想将它们添加到我的数据库,基于它的文件名默认标题 (和设置/更改该标题为每个图像我上传它的选项)。 没有与我的形式没有问题。
问题:我的困境在于当表单数据/动作提交的PHP页面中。
我只能设法之一:
- 上传正确的图像,但得到的所有相同的标题
- 插入正确的头衔,但得到相同的图像对所有
这是我的PHP操作页面(目前上传正确的图像,但具有相同的所有标题 )
<?php
// CONNECT TO DATABASE...
// INCLUDE UPLOAD CLASS LIBRARY
include (dirname(__FILE__).'/lib/class.upload.php');
$files = array();
foreach ($_FILES['fileupload'] as $k => $l)
{
foreach ($l as $i => $v)
{
if (!array_key_exists($i, $files))
$files[$i] = array();
$files[$i][$k] = $v;
$imagename = $_POST['keyword'][$i];
}
}
// create an array here to hold file names
$uploaded = array();
foreach ($files as $file)
{
$generate_name = rand(100,99999);
$generate_name_extra = rand(200,9999);
$filenamex = "COVER_PHOTO_".$generate_name.$generate_name_extra."_".time();
$filenamex_thumb = $filenamex."_thumb";
$handle = new upload($file);
if ($handle->uploaded) {
$this_upload = array();
///// 1 ////////////////////////////////////////////////////////////////////
$handle->file_new_name_body = $filenamex_thumb;
$handle->file_force_extension = true;
$handle->image_resize = true;
$handle->image_x = '300';
$handle->image_ratio_y = true;
$handle->jpeg_quality = '100';
// ABSOLUTE PATH BELOW
$handle->process($absoRoot.'covers/thumbs/');
////////////////////////////////////////////////////////////////////////////
if ($handle->processed) {
// store the image filename
$this_upload['image'] = $handle->file_dst_name; // Destination file name
$this_upload['body'] = $handle->file_dst_name_body; // Destination file name body
$this_upload['extension'] = $handle->file_dst_name_ext; // Destination file extension
$category_id = $_POST['cat'];
$hiddenvalues = explode ("|",$_POST["cat"]);
$category = $hiddenvalues[0];
$category_name = $hiddenvalues[1];
$sql = 'INSERT INTO cover (id, img, keyword, category_name, cat_id) VALUES ("", "'.$this_upload['image'].'", "'.$imagename.'", "'.$category_name.'", "'.$category.'")';
mysql_query($sql);
}
$handle->clean();
header("Location: ./upload.php");
$message = "";
} else {
echo ' file not uploaded to the wanted location';
echo ' Error: ' . $handle->error . '';
}
} ?>
(我用的是上传类由Colin Verot处理图像上传,和他们的FAQ教程来处理多个图片上传此页,下:如果有多次上传 )
这将工作完美的,如果我只是在上传图片,但我添加添加每个图像数据到我的数据库的功能。 &这是它得到混乱。
我敢肯定,关键是把SQL查询正确的foreach内,或者使一个又一个,但我已经试过了 - 它只是给了我1的好成绩对于任何一个图片上传或标题,从来没有两个。
我需要将图像的数据(包括图像路径)上传到网站,然后将其存储到我的数据库。
请看看我的代码,并开导我如何解决这个问题呢? 一个片段线索真的,现在的我已经尝试过所有我能想到的后非常困惑是巨大的。 非常感谢!