php - 使用图像上传脚本上传文件

标签 php mysql

我正在尝试制作一个简单的上传脚本,其中包含图像上传部分和文件上传部分,我想尝试将图像和文件以及其他一些变量存储在同一个数据库中,但我遇到了麻烦实现这一点我想知道是否有人可以帮助我解决困境。

索引:

<body>
    <form method="post" action="insert_file.php">
        <table>
            <tr><td>Title:</td><td><input type="text" name="title" /></td></tr>
            <tr><td>Author:</td><td><input type="text" name="author"/></td></tr>
            <tr><td>Description:</td><td><textarea cols="30" rows="10" name="description"></textarea></td></tr>
            <tr><td>Category:</td>
                <td>
                    <select name="category">
                        <option value="poker">Poker</option>
                        <option value="sportsbetting">Sports Betting</option>
                        <option value="financialbetting">Financial Betting</option>
                        <option value="casino">Casino</option>
                        <option value="bingo">Bingo</option>
                        <option value="socialgaming">Social Gaming</option>
                        <option value="affiliatemarketing">Affiliate Marketing</option>
                    </select>
                </td>
            </tr>
            <tr><td>Publication Date:</td><td><input type="text" name="pub_date" id="datepicker"/></td></tr>
            <tr><td>Tags:</td><td><input type="text" name="tags"/></td></tr>
            <tr><td>Price:</td><td><input type="text" name="price"/></td></tr>
            <tr><td>Image:</td><td><input type="file" name="image"/></td></tr>
            <tr><td>Website:</td><td><input type="text" name="website"/></td></tr>
            <tr><td>Contact Email:</td><td><input type="text" name="email"/></td></tr>
            <tr><td>File:</td><td><input type="file" name="uploaded_file"/></td></tr>
            <tr><td></td><td><input type="submit" value="Submit"/></td></tr>
        </table>
    </form>
</body>

插入:

<?php
// Check if a file has been uploaded
if(isset($_FILES['uploaded_file'])) {
    // Make sure the file was sent without errors
    if($_FILES['uploaded_file']['error'] == 0) {
        // Connect to the database
        include('../config.inc');
        // Connect to the database
        $dbLink = $con;     

        // Gather all required data
        $username       = $_SESSION['username'];            
        $title          = $_POST['title'];
        $author         = $_POST['author'];
        $description    = $_POST['description'];
        $category       = $_POST['category'];
        $pub_date       = $_POST['pub_date'];
        $tags           = $_POST['tags'];
        $price          = $_POST['price'];
        $website        = $_POST['website'];
        $email          = $_POST['email'];
        $name           = $title;
        $mime           = $dbLink->real_escape_string($_FILES['uploaded_file']['type']);
        $data           = $dbLink->real_escape_string(file_get_contents($_FILES  ['uploaded_file']['tmp_name']));
        $size           = intval($_FILES['uploaded_file']['size']);

        // Create the SQL query
        $query = "
            INSERT INTO `file2` (
               `username`, 
               `title`, 
               `author`,
               `description`, 
               `category`, 
               `pub_date` ,
               `tags`, 
               `price`, 
               `website`,
               `email`,  
               `name`, 
               `mime`, 
               `size`, 
               `data`, 
               `created`
            )
            VALUES (
               '{$username}', 
               '{$title}',
               '{$author}', 
               '{$description}',
               '{$category}',
               '{$pub_date}',
               '{$tags}',
               '{$price}',
               '{$website}',
               '{$email}',
               '{$name}', 
               '{$mime}', 
               '{$size}', 
               '{$data}',
                NOW()
            )";

        // Execute the query
        $result = $dbLink->query($query);

        // Check if it was successfull
        if($result) {
            echo '<center>Success! Your file was successfully added!';
        }
        else {
            echo '<center>Error! Failed to insert the file'
               . "<pre>{$dbLink->error}</pre>";
        }
    }
    else {
        echo 'An error accured while the file was being uploaded. '
           . 'Error code: '. intval($_FILES['uploaded_file']['error']);
    }

    // Close the mysql connection
    $dbLink->close();
}
else {
    echo 'Error! A file was not sent!';
}

// Echo a link back to the main page
echo '<center><font face=arial>';
echo 'You file has been uploaded successfully, please allow upto 24 Hours for your report to be approved by administration. ';
echo '<p>Click <a href="index.php">here</a> to go back</p>';
?>

数据库 - http://postimg.org/image/n0loned2v/

任何有关解决此问题的帮助将不胜感激:)

最佳答案

要使file 输入正常工作,您需要指定表单的enctype。您需要 enctype="multipart/form-data"。请参阅PHP POST uploads了解更多信息。

关于php - 使用图像上传脚本上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19526198/

相关文章:

php - 如何访问名称中带有破折号的属性?

javascript - 商店谁提交了表格?

mysql - 使用混合列数据类型按大小写排序

java - 尝试添加库后出错

php - 如何在 Doctrine 中对 more andWhere 或 Where 进行分组

php - 增量为 "__toString"

mysql - 在 MySQL 中插入唯一行的最便宜的方法?

mysql 多个多对多连接

php - 无法在 PHP 中使用 AJAX 处理复选框值

java - 使用线程插入mysql