Move_uploaded_file не работал на сервере sql

Я использую PHP для веб-разработки. В настоящее время я должен использовать sql-сервер в качестве базы данных для моего нового проекта. Моя проблема в том, что коды для загрузки файлов на сервер, которые я обычно применяю при использовании mysql, не работали на сервере sql. Есть ли какая-то специальная функция, которую я должен добавить при загрузке файла на сервер sql?

Кстати, вот код, который я обычно использовал и хорошо работает на сервере mysql:

<?php
if (isset($_POST['submit'])){
$file=$_FILES['file'];

$fileName=$_FILES['file']['name'];
$fileTmpName=$_FILES['file']['tmp_name'];
$fileExt=explode('.', $_FILES['file']['name']);
$fileActualExt = strtolower(end($fileExt));

$allowed = array('jpg', 'jpeg', 'png', 'pdf');

if (in_array($fileActualExt, $allowed)){

}else{
    echo"not this type";
}
$fileDestination = 'uploads/'.$fileName;
if (move_uploaded_file($fileTmpName,$fileDestination)){

header("location:form.php?uploadsuccess");
}
else{
    echo "uploading error";
}
}
?>

я был бы очень признателен за решения :)

Как загрузка файлов связана с sql / mysql? Где в вашем коде находится часть MySQL?

brombeer 16.05.2018 09:46

Вы делаете это на локальном хосте? А вы использовали enctype = "multipart/form-data" в своей html-форме? и почему ваш первый оператор if else в пустом if, вам нужно переместить в него код, который находится ниже вашего else сейчас

Ende 16.05.2018 09:47

Говоря «SQL Server», вы имеете в виду сервер Microsoft SQL? У вас есть каталог загрузок в корне вашего веб-приложения? Есть ли у вашего веб-сервера разрешения на чтение / запись в этот каталог? Вы проверили лог-файлы своего веб-сервера? Посмотрите в своей конфигурации PHP, чтобы узнать, где находится ваш временный каталог PHP. Вы можете видеть загруженные туда файлы?

Michael Thompson 16.05.2018 09:56

@kerbholz выше - это код, используемый для перемещения фотографий, которые я хочу загрузить, в корневую папку

atiqahz 16.05.2018 10:44

@MichaelThompson, да, я использую сервер Microsoft SQL. Я уже создаю папку в корневой папке в качестве каталога для перемещения файлов. извините, но я вроде как новичок в Microsoft sql server, это файлы журнала, которые находятся в C: \ inetpub \ logs \ LogFiles \ W3SVC1?

atiqahz 16.05.2018 10:59

@ J.Ende, да. вот моя форма в html выглядит так: <html> <form action = "test.php" method = "post" enctype = "multipart / form-data"> Выберите файл изображения для загрузки: <input type = "file" name = "file"> <input type = "submit" name = "submit" value = "Upload"> </form> </html> оператор if else показывает, что если условие применяется, оно ничего не отображает, иначе ошибка появится сообщение. Я использую тот же оператор if else на странице с сервером mysql, и он работает. это просто не работает, когда я использую Micosoft sql server

atiqahz 16.05.2018 11:10

@atiqahz Мой ответ тебе помог?

Ende 17.05.2018 10:16

@ J.Ende нет. как я уже сказал, он работает на сервере mysql, но не на сервере microsoft sql

atiqahz 18.05.2018 09:24

Я тоже пробовал это сам, и для меня он работает на сервере sql ..

Ende 18.05.2018 09:24

У вас нет ошибок? в cpanel / error_reporting .. что-то, с чем мы можем работать

Ende 18.05.2018 09:25

@ J.Ende ошибок нет, сообщение об успешном завершении также отображается на странице, проблема в том, что мои изображения не перемещаются в целевые папки ("загрузки")

atiqahz 18.05.2018 10:31

Я не понимаю, почему вы говорите о sql server, ведь мы не используем базы данных atm?

Ende 18.05.2018 10:48

@ J.Ende, что я имею в виду, изображения в корневой папке xampp действительно перемещаются в папку назначения, но в корневой папке inetpub изображения не перемещаются. что я пытаюсь сделать, так это убедиться, что изображения переместятся в папку «загрузки». извините, если я плохо объяснил свою проблему

atiqahz 18.05.2018 10:58

Я не думаю, что могу больше, чем сделал сейчас, я ничего не знаю о inetpub и о том, что именно вы пытаетесь сделать

Ende 18.05.2018 11:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
14
107
1

Ответы 1

Я точно не знаю, в чем проблема в вашем коде. Если вы использовали эту строку <form action = "test.php" method = "post" enctype = "multipart/form-data"> в своей форме и делаете это на localhost, иначе это было что-то с путем. Затем попробуйте этот код, который я сделал, если это не сработает, вам следует поискать ошибки, возможно, вы cpanel или включить отчет об ошибках

    if (isset($_POST['submit'])){
    $file = $_FILES['file'];

            $fileName = $_FILES['file']['name'];
            $fileTmpName = $_FILES['file']['tmp_name'];
            $fileSize = $_FILES['file']['size'];
            $fileError = $_FILES['file']['error'];
            $fileType = $_FILES['file']['type'];

            $fileExt = explode('.', $fileName);
            $fileActualExt = strtolower(end($fileExt));

            $allowed = array('jpg', 'jpeg', 'png', 'pdf');

            if (in_array($fileActualExt, $allowed)){
                if ($fileError === 0){
                    if ($fileSize < 1000000){
                        $fileNameNew = uniqid('', true).".".$fileActualExt;
                        $fileDestination = 'uploads/'.$fileNameNew;
                        move_uploaded_file($fileTmpName, $fileDestination);
                        header("location:form.php?uploadsuccess");
                    }else{
                        echo "Your file is too big!";
                    }
                }else{
                    echo "There was an error uploading your file!";
                }
            }else{
                echo "You can't upload files of this type!";
            }
       }

Другие вопросы по теме