php - 两个文件输入两个不同的文件夹

时间:2013-11-10 23:01:00

标签: php file upload directory

我在这里问(因为我今天搜索了大量的互联网)

以下是这种情况: 得到一个带有一些字段的表格, 然后它有2个输入type =“file”。 关键是我希望文件A转到文件夹A,文件B转到文件夹B.

我尝试了什么:

这是projs_upload.php

$uploaddirb = '../images/projects/';
$uploaddira = '../images/projects/thumb/';
$uploadfile = $uploaddira . basename($_FILES['min_img']['name']);
$uploadimg = $uploaddirb . basename($_FILES['img']['name']);

move_uploaded_file($_FILES['min_img']['tmp_name'], $uploadfile);
move_uploaded_file($_FILES['img']['tmp_name'], $uploadimg);

这是形式:

require("common.php"); 
if($_POST){
    $query = " 
        INSERT INTO projects ( 
            `idprojects`,
            `cat`, 
            `name`, 
            `desc`, 
            `min_img`,
            `img`,
            `ext_url` 
        ) VALUES ( 
            :idprojects,
            :cat,
            :name,
            :desc,
            :min_img,
            :img,
            :ext_url 
        ) 
    "; 
    $query_params = array(
        ':idprojects'=> "",
            ':cat' => $_POST['cat'],
            ':name' => $_POST['name'],
            ':desc' => $_POST['desc'],
            ':min_img' => $_FILES['min_img']['name'],
            ':img' => $_FILES['img']['name'],
            ':ext_url' => $_POST['exturl'] 
    );          
    try 
    { 
        $stmt = $db->prepare($query); 
        $result = $stmt->execute($query_params); 
    } 
    catch(PDOException $ex) 
    { 
        die("Failed to run query: " . $ex->getMessage()); 
    } 
    include ("funcs/proj_uploads.php");
    header("Location: ?p=manage_projects"); 
    die("Redirecting done"); 
}
<form action="?p=manage_projects" method="post" enctype="multipart/form-data">
<input type="text" placeholder="kategoria" name="cat" />
<input type="text" placeholder="nazwa projektu" name="name" />
<input type="text" placeholder="link do projektu" name="exturl" />
<textarea placeholder="opis" name="desc" />
</textarea>
<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
<input type="file" placeholder="miniatura" name="img" />
<input type="file" placeholder="duży" name="img" />
<button type="submit" class="expand">Zapisz</button>
</form>

和“?p = manage_projects”指的是表单页面。

2 个答案:

答案 0 :(得分:1)

您的$uploaddirb路径需要以/结尾,否则文件将作为文件images/projects上传到thumbsomename

$uploaddirb = '../images/projects/thumb/';

如果这不能解决问题,请用更多信息更新您的问题,即HTML和PHP代码,这两个文件都不起作用吗?您是否检查了目录是否存在且具有适当的权限?

答案 1 :(得分:0)

您的file input标记均称为img

你应该有一个叫img,一个叫min_img

所以:

<input type="file" placeholder="miniatura" name="min_img" />
<input type="file" placeholder="duży" name="img" />

而不是:

<input type="file" placeholder="miniatura" name="img" />
<input type="file" placeholder="duży" name="img" />

注意:您的var_dump($_FILES)区块中if($_POST)很容易发现这一点。