上传失败"移动上传的文件"

时间:2018-01-29 11:30:54

标签: php upload

首先,上传文件夹为777,我的旧上传脚本有效,因此服务器接受文件。这是一个新的目的地。

我使用krajee bootstrap上传来发送文件。我收到了Jason的回复。错误似乎是移动上传文件。我敢打赌,这是我身边的一个简单错误,但我无法看到它。

<?php
if (empty($_FILES['filer42'])) {
    echo json_encode(['error'=>'No files found for upload.']); 
    // or you can throw an exception 
    return; // terminate
}

// get the files posted
$images = $_FILES['filer42'];

// a flag to see if everything is ok
$success = null;

// file paths to store
$paths= [];

// get file names
$filenames = $images['name'];

// loop and process files
for($i=0; $i < count($filenames); $i++){
    $ext = explode('.', basename($filenames[$i]));
    $target = "uploads" . DIRECTORY_SEPARATOR . md5(uniqid()) . "." . array_pop($ext);
    if(move_uploaded_file($_FILES["filer42"]["tmp_name"][$i], $target)) {
        $success = true;
        $paths[] = $target;
    } else {
        $success = false;
        break;
    }
}
// check and process based on successful status 
if ($success === true) {.
    $output = [];

    $output = ['uploaded' => $paths];
} elseif ($success === false) {
    $output = ['error'=>'Error while uploading images. Contact the system administrator'];
    // delete any uploaded files
    foreach ($paths as $file) {
        unlink($file);
    }
} else {
    $output = ['error'=>'No files were processed.'];
}
// return a json encoded response for plugin to process successfully
echo json_encode($output);
?>

2 个答案:

答案 0 :(得分:0)

我认为字段名称是个问题。由于您使用filer42获取图片名称并上传时间,因此您使用的是pictures

请更改

$_FILES["pictures"]["tmp_name"][$i]

$_FILES["filer42"]["tmp_name"][$i]

现在检查,希望它会起作用。如果您仍然遇到问题,请告诉我。

答案 1 :(得分:0)

错误不在此脚本中,而是在帖子中。 我正在使用<input id="filer42" name="filer42" type="file"> 但它必须是<input id="filer42" name="filer42[]" type="file" multiple> 因为剧本似乎需要一个arrey。

现在效果很好。