Php 我想上传多个文件,然后输入它们的标题,然后单击submit将其存储在数据库中

Php 我想上传多个文件,然后输入它们的标题,然后单击submit将其存储在数据库中,php,multiple-file-upload,Php,Multiple File Upload,需要帮助创建表单,以便使用动态添加的多个文本输入框进行多次上载吗 用于将文件上载到服务器 if(isset($_POST['submit'])) { $count=count($_FILES['files']['name']); for($i=0;$i<$count;$i++) { $allowed = array("mp3" => "audio/mp3","wav" => "audio/wav"

需要帮助创建表单,以便使用动态添加的多个文本输入框进行多次上载吗

用于将文件上载到服务器

if(isset($_POST['submit']))
    {
        $count=count($_FILES['files']['name']);

        for($i=0;$i<$count;$i++)
        {
            $allowed = array("mp3" => "audio/mp3","wav" => "audio/wav");

            $cat_type = $_POST['cat_type'];

            $title = $_POST['title'][$i];

            $filename= $_FILES['files']['name'][$i];
            $tempfilename= $_FILES['files']['tmp_name'][$i];
            $filetype=$_FILES['files']['type'][$i];
            $filesize = $_FILES['files']['size'][$i];

            // Verify file extension
            $video_ext = pathinfo($filename, PATHINFO_EXTENSION);
            if(!array_key_exists($video_ext, $allowed)) die("Error: Please select a valid file format.");

            // Verify file size - 5MB maximum
            $maxsize = 5 * 1024 * 1024;
            if($filesize > $maxsize) die("Error: File size is larger than the allowed limit.");

            // Verify MYME type of the file
            if(in_array($filetype, $allowed))
            {
                // Check whether file exists before uploading it
                if(file_exists($ringtonelocation . $filename))
                {
                    echo $filename . " is already exists.";
                } 
                else
                {
                    //uploading file and storing it to database as well 
                    try
                    {
                        $cat_type = $_POST['cat_type'];

                        $cat_alias = strtolower(preg_replace('/\s+/', '', $cat_type));
                        $highest_id += 1;

                        $uploaddate= date("d-m-Y_h-i-sa");
                        // Rename file
                        $newvideofilename = strtolower(str_replace(" ", "_",$title)). "_" .$highest_id. "_" .$uploaddate .".".$video_ext;   


                        move_uploaded_file($_FILES['files']['tmp_name'][$i],$videolocation.$newvideofilename);
                        // $filepath="upload/".$filename;

                        // echo "<br/> Category:-".$cat_type;
                        // echo "<br/> Title:-".$title;
                        // echo "<br/> File Name:-".$filename;
                        // echo "<br/> Record Insert successfully";
                        // echo "<br/>";
                        // $sql = "INSERT INTO video_master (id, name , url) VALUES (NULL,'$title','$filepath')";
                        $sql = "INSERT INTO ringtone_master 
                                (id, name ,cat_type, cat_alias, url, downloads, views, fav_counter, likes, dislikes) 
                                VALUES 
                                (NULL,'$title','$cat_type','$cat_alias','$newvideofilename',0,0,0,0,0)";
                        if(mysqli_query($con,$sql))
                        {
                            echo "<br/> Record Insert successfully";
                        }
                        else
                        {
                            echo "Error: " . $sql . "<br>" . mysqli_error($con);
                        }
                    }
                    catch(Exception $e)
                    {
                        $response['error'] = true;
                        $response['message'] = 'Could not upload file1....';
                    }
                } 

            }
        }
    }
if(isset($\u POST['submit']))
{
$count=count($_文件['FILES']['name']);
对于($i=0;$i“音频/mp3”,“wav”=>“音频/wav”);
$cat_type=$_POST['cat_type'];
$title=$_POST['title'][$i];
$filename=$_文件['FILES']['name'][$i];
$tempfilename=$\u文件['FILES']['tmp\u name'][$i];
$filetype=$_文件['FILES']['type'][$i];
$filesize=$_文件['FILES']['size'][$i];
//验证文件扩展名
$video\u ext=pathinfo($filename,pathinfo\u扩展名);
如果(!array_key_存在($video_ext,$allowed))死亡(“错误:请选择有效的文件格式”);
//验证文件大小-最大5MB
$maxsize=5*1024*1024;
如果($filesize>$maxsize)死亡(“错误:文件大小大于允许的限制”);
//验证文件的MYME类型
if(在数组中($filetype,$allowed))
{
//上传文件前检查文件是否存在
如果(文件_存在($ringtonelocation.$filename))
{
echo$filename。“已存在。”;
} 
其他的
{
//上传文件并将其存储到数据库
尝试
{
$cat_type=$_POST['cat_type'];
$cat_alias=strtolower(preg_replace('/\s+/','$cat_type));
$highest_id+=1;
$uploaddate=日期(“d-m-Y_h-i-sa”);
//重命名文件
$newvideofilename=strtolower(str_replace(“,“,”,$title)).“,$highest_id.”.“,$uploaddate.”.“$video_ext;
移动上传的文件($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$i],$videolocation.$newvideofilename);
//$filepath=“upload/”$filename;
//回声“
类别:-”$cat_类型; //echo“
Title:-”$Title; //echo“
文件名:-”$filename; //回显“
记录插入成功”; //回声“
”; //$sql=“插入到视频_主控(id、名称、url)值中(NULL、$title、$filepath”)”; $sql=“插入铃声\u主机” (id、名称、类别、类别别名、url、下载、视图、fav_计数器、喜欢和不喜欢) 价值观 (空,“$title”、“$cat_type”、“$cat_alias”、“$newvideofilename”、0,0,0,0)”; if(mysqli_查询($con,$sql)) { 回显“
记录插入成功”; } 其他的 { echo“Error:”.$sql.
“.mysqli_Error($con); } } 捕获(例外$e) { $response['error']=true; $response['message']=“无法上载文件1…”; } } } } }
在浏览器中临时存储文件

 <script>
    var selDiv = "";
    var storedFiles = [];

    $(document).ready(function() {
        $("#files").on("change", handleFileSelect);

        selDiv = $("#selectedFiles"); 
        $("#myForm").on("submit", handleForm);

        $("body").on("click", ".selFile", removeFile);
    });

    function handleFileSelect(e) {
        var files = e.target.files;
         var filesArr = Array.prototype.slice.call(files);

        filesArr.forEach(function(f) {          

            if(!f.type.match("audio.mp3")) {
                return;
            }
            storedFiles.push(f);

            var reader = new FileReader();
            reader.onload = function (e) {
                // var html = "<div><img src=\"" + e.target.result + "\" data-file='"+f.name+"' class='selFile' title='Click to remove'>" + f.name + "<br clear=\"left\"/></div>";

                var html = "<div><input type='text' name='title[] required'>"+ f.name + "</div>";
                selDiv.append(html);

            }
            reader.readAsDataURL(f); 
        });   
    }
    </script>

var selDiv=“”;
var-storedFiles=[];
$(文档).ready(函数(){
$(“#文件”)。在(“更改”,handleFileSelect);
selDiv=$(“#selectedFiles”);
美元(“#我的表格”)。关于(“提交”,手册);
$(“正文”)。在(“单击“,.selFile”,删除文件);
});
功能手柄文件选择(e){
var files=e.target.files;
var filesArr=Array.prototype.slice.call(文件);
forEach(函数(f){
如果(!f.type.match(“audio.mp3”)){
返回;
}
存储文件。推送(f);
var reader=new FileReader();
reader.onload=函数(e){
//var html=”“+f.name+”
; var html=“”+f.name+”; selDiv.append(html); } reader.readAsDataURL(f); }); }
Html部分



选择要上载的视频:

当我选择多个文件时,它会根据上传的文件生成输入字段的数量,但问题是输入字段和文件的顺序不同


因此,请帮助解决这个问题,谢谢

好的,退一步,我注意到我没有提到很多事情,为了纠正它,我使用了一个不同于我建议的实现,下面的方法对我有效

将您的手柄文件选择更改为以下内容:

function handleFileSelect(e) {
    var files = e.target.files;
     var filesArr = Array.prototype.slice.call(files);

    filesArr.forEach(function(f,index) {          

        if(!f.type.match("audio.mp3")) {
            return;
        }
        storedFiles.push(f);

        var reader = new FileReader();
        reader.onload = function (e) {
            // var html = "<div><img src=\"" + e.target.result + "\" data-file='"+f.name+"' class='selFile' title='Click to remove'>" + f.name + "<br clear=\"left\"/></div>";

            var html = "<div><input type='text' name='title["+index+"] required'>"+ f.name + "</div>";
            selDiv.append(html);

        }
        reader.readAsDataURL(f); 
    });   
}
if(isset($_POST['submit']))
{
    $count=count($_FILES['files']['name']);

    for($i=0;$i<$count;$i++)
    {
        $allowed = array("mp3" => "audio/mp3","wav" => "audio/wav");

        $cat_type = $_POST['cat_type'];

        $title = $_POST['title'][$i];

        $filename= $_FILES['files']['name'][$i];
        $tempfilename= $_FILES['files']['tmp_name'][$i];
        $filetype=$_FILES['files']['type'][$i];
        $filesize = $_FILES['files']['size'][$i];

        // Verify file extension
        $video_ext = pathinfo($filename, PATHINFO_EXTENSION);
        if(!array_key_exists($video_ext, $allowed)) die("Error: Please select a valid file format.");

        // Verify file size - 5MB maximum
        $maxsize = 5 * 1024 * 1024;
        if($filesize > $maxsize) die("Error: File size is larger than the allowed limit.");

        // Verify MYME type of the file
        if(in_array($filetype, $allowed))
        {
            // Check whether file exists before uploading it
            if(file_exists($ringtonelocation . $filename))
            {
                echo $filename . " is already exists.";
            } 
            else
            {
                //uploading file and storing it to database as well 
                try
                {
                    $cat_type = $_POST['cat_type'];

                    $cat_alias = strtolower(preg_replace('/\s+/', '', $cat_type));
                    $highest_id += 1;

                    $uploaddate= date("d-m-Y_h-i-sa");
                    // Rename file
                    $newvideofilename = strtolower(str_replace(" ", "_",$title)). "_" .$highest_id. "_" .$uploaddate .".".$video_ext;   


                    move_uploaded_file($_FILES['files']['tmp_name'][$i],$videolocation.$newvideofilename);
                    // $filepath="upload/".$filename;

                    // echo "<br/> Category:-".$cat_type;
                    // echo "<br/> Title:-".$title;
                    // echo "<br/> File Name:-".$filename;
                    // echo "<br/> Record Insert successfully";
                    // echo "<br/>";
                    // $sql = "INSERT INTO video_master (id, name , url) VALUES (NULL,'$title','$filepath')";
                    $sql = "INSERT INTO ringtone_master 
                            (id, name ,cat_type, cat_alias, url, downloads, views, fav_counter, likes, dislikes) 
                            VALUES 
                            (NULL,'$title','$cat_type','$cat_alias','$newvideofilename',0,0,0,0,0)";
                    if(mysqli_query($con,$sql))
                    {
                        echo "<br/> Record Insert successfully";
                    }
                    else
                    {
                        echo "Error: " . $sql . "<br>" . mysqli_error($con);
                    }
                }
                catch(Exception $e)
                {
                    $response['error'] = true;
                    $response['message'] = 'Could not upload file1....';
                }
            } 

        }
    }
}
功能手柄文件选择(e){
var files=e.target.files;
var filesArr=Array.prototype.slice.call(文件);
forEach(函数(f,索引){
如果(!f.type.match(“audio.mp3”)){
返回;
}
存储文件。推送(f);
var reader=new FileReader();
reader.onload=函数(e){
//var html=”“+f.name+”
; var html=“”+f.name+”; selDiv.append(html); } reader.readAsDataURL(f); }); }
然后,在php代码中,您可以切换回执行以下操作:

function handleFileSelect(e) {
    var files = e.target.files;
     var filesArr = Array.prototype.slice.call(files);

    filesArr.forEach(function(f,index) {          

        if(!f.type.match("audio.mp3")) {
            return;
        }
        storedFiles.push(f);

        var reader = new FileReader();
        reader.onload = function (e) {
            // var html = "<div><img src=\"" + e.target.result + "\" data-file='"+f.name+"' class='selFile' title='Click to remove'>" + f.name + "<br clear=\"left\"/></div>";

            var html = "<div><input type='text' name='title["+index+"] required'>"+ f.name + "</div>";
            selDiv.append(html);

        }
        reader.readAsDataURL(f); 
    });   
}
if(isset($_POST['submit']))
{
    $count=count($_FILES['files']['name']);

    for($i=0;$i<$count;$i++)
    {
        $allowed = array("mp3" => "audio/mp3","wav" => "audio/wav");

        $cat_type = $_POST['cat_type'];

        $title = $_POST['title'][$i];

        $filename= $_FILES['files']['name'][$i];
        $tempfilename= $_FILES['files']['tmp_name'][$i];
        $filetype=$_FILES['files']['type'][$i];
        $filesize = $_FILES['files']['size'][$i];

        // Verify file extension
        $video_ext = pathinfo($filename, PATHINFO_EXTENSION);
        if(!array_key_exists($video_ext, $allowed)) die("Error: Please select a valid file format.");

        // Verify file size - 5MB maximum
        $maxsize = 5 * 1024 * 1024;
        if($filesize > $maxsize) die("Error: File size is larger than the allowed limit.");

        // Verify MYME type of the file
        if(in_array($filetype, $allowed))
        {
            // Check whether file exists before uploading it
            if(file_exists($ringtonelocation . $filename))
            {
                echo $filename . " is already exists.";
            } 
            else
            {
                //uploading file and storing it to database as well 
                try
                {
                    $cat_type = $_POST['cat_type'];

                    $cat_alias = strtolower(preg_replace('/\s+/', '', $cat_type));
                    $highest_id += 1;

                    $uploaddate= date("d-m-Y_h-i-sa");
                    // Rename file
                    $newvideofilename = strtolower(str_replace(" ", "_",$title)). "_" .$highest_id. "_" .$uploaddate .".".$video_ext;   


                    move_uploaded_file($_FILES['files']['tmp_name'][$i],$videolocation.$newvideofilename);
                    // $filepath="upload/".$filename;

                    // echo "<br/> Category:-".$cat_type;
                    // echo "<br/> Title:-".$title;
                    // echo "<br/> File Name:-".$filename;
                    // echo "<br/> Record Insert successfully";
                    // echo "<br/>";
                    // $sql = "INSERT INTO video_master (id, name , url) VALUES (NULL,'$title','$filepath')";
                    $sql = "INSERT INTO ringtone_master 
                            (id, name ,cat_type, cat_alias, url, downloads, views, fav_counter, likes, dislikes) 
                            VALUES 
                            (NULL,'$title','$cat_type','$cat_alias','$newvideofilename',0,0,0,0,0)";
                    if(mysqli_query($con,$sql))
                    {
                        echo "<br/> Record Insert successfully";
                    }
                    else
                    {
                        echo "Error: " . $sql . "<br>" . mysqli_error($con);
                    }
                }
                catch(Exception $e)
                {
                    $response['error'] = true;
                    $response['message'] = 'Could not upload file1....';
                }
            } 

        }
    }
}
if(isset($\u POST['submit']))
{
$count=count($_文件['FILES']['name']);
对于($i=0;$i“音频/mp3”,“wav”=>“音频/wav”);
$cat_type=$_POST['cat_type'];
$title=$_POST['title'][$i];
$filename=$_文件['FILES']['name'][$i];
$tempfilename=$\u文件['FILES'