Невозможно загрузить файл с пользовательской функцией php - PullRequest
0 голосов
/ 02 декабря 2018

Я пытаюсь использовать функцию для загрузки файла другого типа, задавая ему переменные.Как показано ниже:

<?
function fn_fileUpload($data,$dir,$uid){
    include_once($_SERVER['DOCUMENT_ROOT']."/cgi-bin/connect.php");
    if(isset($data) && $data['error'] === UPLOAD_ERR_OK){
        $fileTmpPath = $data['tmp_name'];
        $fileName = $data['name'];
        $fileSize = $data['size'];
        $fileType = $data['type'];
        $fileNameCmps = explode(".", $fileName);
        $fileExt = strtolower(end($fileNameCmps));
        $newFileName = $uid . '.' . $fileExt;
        //check file ext
        $okEXT = array('jpg', 'jpeg', 'png','doc','docx','pdf');
        if (in_array($fileExt, $okEXT)) {
            $fileDir = '/'.$dir.'/';
            $dest_path = $fileDir.$newFileName;          
            if(move_uploaded_file($fileTmpPath, $dest_path)){
                try{
                    $stmt2=$mysqli->prepare("insert into job_file (jfile_id, job_id, jfile_name, jfile_size, jfile_type, jfile_ext) valies(?,?,?,?,?,?)");
                    $stmt2->bind_param('iisiss',$zero,$uid,$newFileName,$fileSize,$fileType,$fileExt);
                    $stmt2->execute();
                    $result = 'ok';
                }catch(mysqli_sql_exception $err){
                    $result=$err;
                }
            }else{
              $result = 'Cannot upload file!';
            }
        }//in_array
    }//if(isset
    return $result;
}
?>

И это как использовать:

//upload file
$job_file=fn_fileUpload($_FILES['job_file'],'uploads',$_POST['passport_id']);
//upload photo
$job_img=fn_fileUpload($_FILES['job_img'],'photos',$_POST['passport_id']);

Отсюда функция всегда возвращает: Cannot upload file!.Сначала я думаю.Возможно, это как-то связано с move_uploaded_file, но файл находился в каталоге /uploads, но не в /photos.Обе директории CHMOD 755 (пробовал 777, но не повезло).

БД прошла правильно.Есть идеи как это исправить?

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете использовать move_uploaded_file() ONCE только для временного файла, который был загружен через форму.Эта функция уничтожает временный файл после его перемещения, поэтому для первой загрузки в каталоге загрузки вы можете сделать это хорошо, но для второй нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...