如何将带有路径的上传文件名存储到数据库中

时间:2016-06-03 04:33:28

标签: php jquery html dropzone.js

我正在使用dropzone api上传图片文件(拖放)。当我上传文件时,表单会自动提交。但是我的表格中还有两个文本字段。而且我还想将上传的文件路径存储到数据库中。我怎样才能做到这一点。这是我的代码。

    html, body {
        width:40.5cm;
        height:21.5cm;
        margin:0cm;
        padding:0cm;
    }
    @page
    {
        width: 40.5cm;
        height: 21.5cm;
        margin:0;
    }
    @media print {
        html, body {
            width: 405mm;
            height: 215mm;
        }
    }

我的upload.php文件

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<!-- Add Dropzone -->
<link rel="stylesheet" type="text/css" href="css/dropzone.css" />
<script type="text/javascript" src="js/dropzone.js"></script>
</head>
<body>
<h1>Drag&amp;Drop Multiple Files Upload using DropzoneJS and PHP by CodexWorld</h1>
<div class="image_upload_div">
    <form action="upload.php" class="dropzone">
    </form>
        <input type="text" name="text1">
        <input type="text" name="text2">
</div>  
</body>
</html>

3 个答案:

答案 0 :(得分:0)

以这种方式使用

&#13;
&#13;
<input  type="file" name="file" id="file" />	
<input type="submit" value="Upload Image" name="submit">

	

$file=$_FILES['file']['name'];
$dest="uploads/$file";
$src=$_FILES['file']['tmp_name'];
move_uploaded_file($src,$dest);

$result=mysql_query("insert into tablename(dbfieldname) values('$dest')");
&#13;
&#13;
&#13;

答案 1 :(得分:0)

首先,您必须创建一个div并从中删除dropzone类 表格,以阻止它附加到整个表格。

 <div class="dropzone dropzone-previews dzUpload" id="my-awesome-dropzone" name = "files"></div>

然后你必须改变javascript以编程方式附加dropzone。

 var dz = new Dropzone('#my-awesome-dropzone',{
         url: "fileUploader.php",
         ...

表单提交时,您必须阻止默认操作(在本例中为表单提交。)

 $('#form').on('submit', function(event) {
      if(dz.getQueuedFiles().length > 0) {
           event.preventDefault(); 
           dz.processQueue(); 
      }
       });

现在,您要停止提交表单并处理队列,这会导致运行“fileUploader.php”脚本,您可以使用该脚本验证文件。

如果您对这些文件感到满意,可以将它们移动到所需的位置,然后通过将它们存储为数组并回显json_encode($ files)来返回文件名

这会在你的javascript中给你一个响应,然后你使用JSON.parse()函数将它转换为一个对象。

现在您有了响应以便将文件添加到数据库中,您可以使用隐藏属性在表单中创建额外的输入,以便用户无法看到它。然后,您可以使用jQuery将javascript中的文件名发送到表单中的隐藏输入框。

 $("#hiddenInput").val(files);

如果对每个文件执行此操作,则每次都可以附加隐藏的输入。您可以使用此功能在队列完成后提交表单。

queuecomplete: function(file) {  

 $('#form).submit(); 
 $('#submitButton').click();

},

现在这就像提交普通表单一样,您可以将文件名分解为数组并循环将每个文件名添加到数据库中

如果您需要任何额外的帮助,请随时与我联系,因为我的解释不是很好: - )

答案 2 :(得分:0)

&#13;
&#13;
<input  type="file" name="file" id="file" />	
    <input type="submit" value="Upload Image" name="submit">

    	
<?php
    $file=$_FILES['file']['name'];
    $dest="uploads/$file";
    $src=$_FILES['file']['tmp_name'];
    move_uploaded_file($src,$dest);

    $result=mysql_query("insert into tablename(dbfieldname) values('$dest')");
?>
&#13;
&#13;
&#13;