如何在一个数组中存储多个图像路径,以便在数据库中存储单行中的值,以便为php上传多个图像 我想将路径存储在一个数组中,该数组将在一行中存储不同的路径
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<?php
class Upload_Rename
{
const ALLOWED_TYPES = "jpg,gif,png";
public static function generate_new_name($extension, $uppercase = true, $prefix = '', $sufix = '')
{
$new_name = $prefix . uniqid() . '_' . time() . $sufix;
return ($uppercase ? strtoupper($new_name) : $new_name) . '.' . $extension;
}
public static function check_and_get_extension($file)
{
$file_part = pathinfo($file);
$allowed_types = explode(",", Upload_Rename::ALLOWED_TYPES);
if (!in_array($file_part['extension'], $allowed_types)) {
throw new Exception('Not ok.. bad bad file type.');
}
return $file_part['extension'];
}
public function upload($file, $target_destination)
{
if (!isset($file['tmp_name'])) {
throw new Exception('Whaaaat?');
}
$_name = $file['name'];
$_tmp = $file['tmp_name'];
$_type = $file['type'];
$_size = $file['size'];
$file_extension = '';
try {
$file_extension = Upload_Rename::check_and_get_extension($_name);
}
catch (Exception $e) {
throw new Exception('Ops.. file extension? what? ' . $e->getMessage());
}
$new_name = Upload_Rename::generate_new_name($file_extension, true, 'whaat_', '_okey');
$destination = $target_destination . DIRECTORY_SEPARATOR . $new_name;
move_uploaded_file($_tmp, $destination);
return $destination;
}
public function multiple_files($files, $destination)
{
$number_of_files = isset($files['tmp_name']) ? sizeof($files['tmp_name']) : 0;
$errors = array();
$paths = array();
for ($i = 0; $i < $number_of_files; $i++) {
if (isset($files['tmp_name'][$i]) && !empty($files['tmp_name'][$i])) {
try {
$path = $this->upload(array(
'name' => $files['name'][$i],
'tmp_name' => $files['tmp_name'][$i],
'size' => $files['size'][$i],
'type' => $files['type'][$i]
), $destination);
$paths[] = $path;
}
catch (Exception $e) {
array_push($errors, array(
'file' => $files['name'][$i],
'error' => $e->getMessage()
));
}
}
}
return $paths;
}
}
if ($_FILES) {
$upload = new Upload_Rename();
$destination = 'upload';
$paths = $upload->multiple_files($_FILES['myfile'], $destination);
//Fill this with correct information
$mysql_hostname = "";
$mysql_user = "";
$mysql_password = "";
$mysql_database = "";
$tbl_name = "test";
$pathfield_name = 'path';
//
$con = mysql_connect("localhost", "root", "");
myesql_select_db("db1", $con);
foreach ($paths as $path) {
$query = 'INSERT INTO `' . $tbl_name . '` (`' . $pathfield_name . '`) VALUES ("' . $mysql->escape_string($path) . '");';
mysql_query($query);
}
$mysql_close($con);
}
?>
<form method="post" enctype="multipart/form-data">
<?php
for ($i = 0; $i < 10; $i++):
?>
file: <input type="file" name="myfile[]"><br>
<?php
endfor;
?>
<input type="submit">
</form>
</body>
</html>
答案 0 :(得分:0)
Hope this one will help you.
if (isset($_FILES['filetoupload']['name'])) {
$file_name_all = "";
$randomString = "";
for ($i = 0; $i < count($_FILES['filetoupload']['name']); $i++) {
$characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
for ($j = 0; $j < 7; $j++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
$tmpFilePath = $_FILES['filetoupload']['tmp_name'][$i];
if ($tmpFilePath != "") {
$path = "../views/uploads/";
$name = $_FILES['filetoupload']['name'][$i];
// $size = $_FILES['filetoupload']['size'][$i];
list($txt, $ext) = explode(".", $name);
//$file= time().substr(str_replace(" ", "_", $txt), 0);
$file = $randomString . substr(str_replace(" ", "_", $txt), 0);
$info = pathinfo($file);
$filename = $file . "." . $ext;
if (move_uploaded_file($_`if (isset($_FILES['filetoupload']['name'])) {
$file_name_all = "";
$randomString = "";
for ($i = 0; $i < count($_FILES['filetoupload']['name']); $i++) {
$characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
for ($j = 0; $j < 7; $j++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
$tmpFilePath = $_FILES['filetoupload']['tmp_name'][$i];
if ($tmpFilePath != "") {
$path = "../views/uploads/";
$name = $_FILES['filetoupload']['name'][$i];
// $size = $_FILES['filetoupload']['size'][$i];
list($txt, $ext) = explode(".", $name);
//$file= time().substr(str_replace(" ", "_", $txt), 0);
$file = $randomString . substr(str_replace(" ", "_", $txt), 0);
$info = pathinfo($file);
$filename = $file . "." . $ext;
if (move_uploaded_file($_FILES['filetoupload']['tmp_name'][$i], $path . $filename)) {
$file_name_all.=$filename . "*";
}
}
}
$finalFileNames = rtrim($file_name_all, '*'); //imagepath if it is present
$insertMsgImages = mysql_query("insert into conversation_messages_tbl(postedby_userid,topic_id,message,image,posted_timestamp,upload_img,is_active,member_id) values('$user_id','$topic_id','$message','$finalFileNames','$posted_timestamp','$finalFileNames','1','$member_id')");
}`FILES['filetoupload']['tmp_name'][$i], $path . $filename)) {
$file_name_all.=$filename . "*";
}
}
}
$finalFileNames = rtrim($file_name_all, '*'); //imagepath if it is present
$insertMsgImages = mysql_query("insert into conversation_messages_tbl(postedby_userid,topic_id,message,image,posted_timestamp,upload_img,is_active,member_id) values('$user_id','$topic_id','$message','$finalFileNames','$posted_timestamp','$finalFileNames','1','$member_id')");
}