Я использую 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";
}
}
?>
я был бы очень признателен за решения :)
Вы делаете это на локальном хосте? А вы использовали enctype = "multipart/form-data" в своей html-форме? и почему ваш первый оператор if else в пустом if, вам нужно переместить в него код, который находится ниже вашего else сейчас
Говоря «SQL Server», вы имеете в виду сервер Microsoft SQL? У вас есть каталог загрузок в корне вашего веб-приложения? Есть ли у вашего веб-сервера разрешения на чтение / запись в этот каталог? Вы проверили лог-файлы своего веб-сервера? Посмотрите в своей конфигурации PHP, чтобы узнать, где находится ваш временный каталог PHP. Вы можете видеть загруженные туда файлы?
@kerbholz выше - это код, используемый для перемещения фотографий, которые я хочу загрузить, в корневую папку
@MichaelThompson, да, я использую сервер Microsoft SQL. Я уже создаю папку в корневой папке в качестве каталога для перемещения файлов. извините, но я вроде как новичок в Microsoft sql server, это файлы журнала, которые находятся в C: \ inetpub \ logs \ LogFiles \ W3SVC1?
@ 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 Мой ответ тебе помог?
@ J.Ende нет. как я уже сказал, он работает на сервере mysql, но не на сервере microsoft sql
Я тоже пробовал это сам, и для меня он работает на сервере sql ..
У вас нет ошибок? в cpanel / error_reporting .. что-то, с чем мы можем работать
@ J.Ende ошибок нет, сообщение об успешном завершении также отображается на странице, проблема в том, что мои изображения не перемещаются в целевые папки ("загрузки")
Я не понимаю, почему вы говорите о sql server, ведь мы не используем базы данных atm?
@ J.Ende, что я имею в виду, изображения в корневой папке xampp действительно перемещаются в папку назначения, но в корневой папке inetpub изображения не перемещаются. что я пытаюсь сделать, так это убедиться, что изображения переместятся в папку «загрузки». извините, если я плохо объяснил свою проблему
Я не думаю, что могу больше, чем сделал сейчас, я ничего не знаю о inetpub и о том, что именно вы пытаетесь сделать






Я точно не знаю, в чем проблема в вашем коде. Если вы использовали эту строку <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!";
}
}
Как загрузка файлов связана с sql / mysql? Где в вашем коде находится часть MySQL?