Я прочитал несколько сообщений SO относительно загрузки файлов и просто использовал их, чтобы понять, как это работает. Но, к сожалению, я не могу заставить его работать:Загрузка файла на локальный сервер apache
код
<html>
<head>
<script type="text/javascript" src="lib/jquery-2.1.3.min.js"></script>
<script type="text/javascript" src="lib/jquery-validate.min.js"></script>
</head>
<script>
$(
function()
{
$(':button').click(function(){
var formData = new FormData($('form')[0]);
$.ajax({
url: 'upload.php',
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
return myXhr;
},
success: function(s,e)
{
console.log('Completed'+" "+s+" "+e);
},
error: function(xhr,status,error)
{
console.log('Error '+xhr+" "+status+" "+error);
},
data: formData,
cache: false,
contentType: false,
processData: false
});
});
})
</script>
<body>
<form enctype="multipart/form-data">
<input name="file" type="file" />
<input type="button" value="Upload" />
</form>
</body>
Это ошибка я получаю:
<b>Warning</b>: move_uploaded_file(/new 1.txt): failed to open stream:
Permission denied in <b>C:\Users\gopir\Server\Apache24\htdocs\front-
page\upload.php</b> on line <b>6</b><br /><br />
<b>Warning</b>: move_uploaded_file(): Unable to move 'C:\Users\gopir
\AppData\Local\Temp\php306E.tmp' to '/new 1.txt' in <b>C:\Users\gopir
\Server\Apache24\htdocs\front-page\upload.php</b> on line <b>6</b><br />
There was an error uploading the file, please try again!
Я понимаю, что новый 1.txt разрешение вызывает проблему.
Мои сомнения
Как пользователь знает об этих разрешениях, когда он/она загружает файл? Нужно ли им изменять разрешения, если они должны загружаться? Или я понял неправильно?
Я не понимаю о функциях xhr здесь. Я искал ее. Но я не понимаю этого и его необходимость здесь.
Прошу прояснить мои сомнения. Если этот вопрос не соответствует качеству SO, дайте мне знать. Я отредактирую/удалю его.
Благодаря
Забудь загрузить PHP
<?php
$folder = "/";
$path = $folder . basename($_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
echo "The file ". basename($_FILES['file']['name']). " has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
?>
Это сообщение об ошибке php и не имеет никакого отношения к вашему коду. Разделите код на стороне сервера (= php). Но чтобы угадать: ваш PHP-код пытается переместить загруженный файл в каталог, на который php не имеет доступа для записи. – tworabbits
Речь идет не о разрешении пользователей. Кажется, php не имеет права на запись в папку назначения. Можно ли увидеть скрипт для upload.php? – Sisir
@tworabbits Итак, это проблема разрешения папки, в которой я пытаюсь переместить загруженный файл. Я прав? –