0

我是来问的(因为我今天搜索了很多互联网)

情况如下:得到一个包含一些字段的表单,然后它有 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”指的是表单页面。

4

2 回答 2

1

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

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

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

于 2013-11-10T23:10:53.553 回答
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)块中发现。

于 2013-11-11T11:33:30.027 回答