如何让用户能够在表单中上传图片?

时间:2009-12-18 21:22:30

标签: php javascript html ajax

我有一个分类广告网站,用户必须填写表格才能投放广告。表格由姓名,密码,类别,规格等组成。

现在,我需要在此表单中添加图片上传功能,该表单必须具有以下内容:

1-上传最多5张图片。 如果用户想要另一张图像,请在每张图像下方“删除图像链接”。

你会怎么做?

由于

如果有一个插件或Jquery的东西很容易修改,那将是最好的...

2 个答案:

答案 0 :(得分:1)

jQuery Multiple File Upload

您可以使用max选项限制上传次数,也可以将数字作为唯一参数传递。有关“示例”选项卡的更多信息。

答案 1 :(得分:0)

如果要将其作为文件上传到SQL数据库,请在表单中使用(以php echo格式):

echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"2000000\">
<input name=\"userfile\" type=\"file\" id=\"userfile\">";

然后在你的表单中接收php页面就像这样:

if ($_FILES['userfile']['size'] > 0) {

    $fileName = $_FILES['userfile']['name'];
    $tmpName  = $_FILES['userfile']['tmp_name'];
    $fileSize = $_FILES['userfile']['size'];
    $fileType = $_FILES['userfile']['type'];

    $fp      = fopen($tmpName, 'r');
    $content = fread($fp, filesize($tmpName));
    $content = addslashes($content);
    fclose($fp);

    if(!get_magic_quotes_gpc())
    {
        $fileName = addslashes($fileName);
    }



    $query = "INSERT INTO files (name, size, type, content ) VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

    mysql_query($query) or die('Error, query failed'); 


    $thisq = mysql_query("SELECT * FROM `files` WHERE 1 ORDER BY `id` DESC LIMIT 1");
    $fileidnumber= mysql_fetch_array($thisq);

}

这会将文件存储到数据库中,然后返回密钥供您保存或使用,无论您喜欢什么。然后,您可以创建一个页面来下载这样的文件:

<?php
import_request_variables(gp);

if(isset($_GET['id'])) {
    // if id is set then get the file with the id from database
    $id    = $_GET['id'];
    $query = "SELECT name, type, size, content " .
             "FROM `files` WHERE id = '$id'";

    $result = mysql_query($query) or die('Error, query failed');
    list($name, $type, $size, $content) = mysql_fetch_array($result);

    header("Content-length: $size");
    header("Content-type: $type");
    header("Content-Disposition: attachment; filename=$name");
    echo $content;

    exit;
}

?>