2015-09-26 2 views
-1

, поэтому я пытаюсь создать сценарий загрузки для своей веб-страницы, и я не могу заставить его работать. при попытке загрузить файл адресная строка говорит «webpage.com/upload.php», но не загружает страницу или не загружает файл. У php.ini есть загружаемые файлы с максимальным размером загрузки 10240M (10G). цель - просто простой сценарий загрузки, который не принимает 2 файла с тем же именем. вот недостаток кода. закомментируйте css и включите заголовок/нижний колонтитул, если вы хотите попробовать. я оставил их в том, что это повлияло на что-то.сценарий загрузки для веб-страницы

На веб-странице (расположенной на /var/www/content/file.php):

<?php session_start(); ?> 
<html> 
<head> 
    <title>Kaiocraft</title> 
    <link rel="stylesheet" type="text/css" href="/style.css"> 
</head> 
<body> 
    <?php $logo="/logo.png"; include("/var/www/header.php"); ?> 
     <form action="/upload.php" method="post" enctype="multipart/form-data"> 
      <p>file to upload:</p> 
      <input type="file" name="filetoupload" id="filetoupload"> 
      <input type="submit" value="upload" name="submit"> 
     </form> 
    <?php include("/var/www/footer.php"); ?> 
</body> 
</html> 

в PHP скрипт (расположенный в /var/www/upload.php):

<?php 
$target_dir = "/var/www/uploads/"; 
$target_file = $target_dir . basename($_FILES["filetoupload"]["name"]); 
$uploadOk = 1; 
if (file_exists($target_file)) { 
    echo "<p>a file with that name already exists</p>"; 
    uploadOk = 0; 
} 
if ($uploadOk == 1) { 
    if (move_uploaded_file($_FILES["filetoupload"]["tmp_name"],$target_file)) { 
    echo "<p>uploaded successfully</p>"; 
} else { 
    echo "<p>error. please try again</p>"; 
    } 
} 
?> 

и пустая папка в/var/www/uploads для сохранения.

и да, я знаю, что это очень рискованный и небезопасный способ сделать это, но он должен принимать ЛЮБОЙ тип файла до 10G.

EDIT: когда я закомментировать

if (file_exists($target_file)) { 
    echo "<p>a file with that name already exists</p>"; 
    uploadOk = 0; 
} 

в сценарии PHP он работает, однако я могу переписать его с файлом с таким же именем.

+1

«вы видите какие-либо недостатки в это?" Полагаю, вы спрашиваете об этом по какой-то причине. Поэтому вместо того, чтобы позволить сообществу идти на какую-то охоту за мусорщиком, почему бы вам не рассказать нам, что не так, что сообщение об ошибке вы получаете, какие попытки отладки появились и где вы застряли. – PeeHaa

+0

благодарит за слово. я изменил его. – kaioker2

+0

Ошибки? Что нибудь? 'Error_reporting (E_ALL); ini_set ('display_errors', 1); 'Почему вы отмечаете его как« Javascript »? Я не вижу javascript. –

ответ

1
basename(S_FILES["filetoupload"]["name"]); 

должен быть

basename($_FILES["filetoupload"]["name"]); 

У вас есть S вместо $

также установить post_max_size в php_ini, не только upload_max_filesize

Вот сценарий загрузки переписан (он работает, я проверил)

<?php 
// show errors, disable this on production server 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 


$target_dir = "/var/www/inovision.ro/web/ddns/up/"; 
$target_file = $target_dir.basename($_FILES["filetoupload"]["name"]); 

if(!file_exists($target_file) && isset($_FILES["filetoupload"]["error"]) && $_FILES["filetoupload"]["error"] == 0) { 
    move_uploaded_file($_FILES["filetoupload"]["tmp_name"], $target_file); 
    echo "<p>uploaded successfully</p>"; 
} 
else if(file_exists($target_file)) { 
    echo "<p>a file with that name already exists</p>"; 
} 
else { 
    echo "<p>error uploading</p>"; 
} 

?> 
+0

Я исправил обе эти проблемы, однако он все еще не может загрузить – kaioker2

+0

вы можете посмотреть в журналах ошибок? или включить отчет об ошибках (в php.ini или на upload.php). Какую ошибку он дает? – andreibaboi

+0

Также перемещайте свою загрузочную папку за пределы общей папки или защитите ее с помощью .htaccess, иначе ваше приложение будет иметь серьезные проблемы. вы можете обслуживать загруженные файлы с помощью php по соображениям безопасности. – andreibaboi

0

Убедитесь, что папка загрузки существует и доступна для записи веб-пользователя в вашей системе

Например, на Ubuntu пользователь WWW-данные, и разрешение должно быть 775.

+0

сделано, и он все еще не работает. и это ubuntu – kaioker2

Смежные вопросы