[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с закачкой файлов помогите пожалуйста
Niksik
Не получается загрузить файлы на сервер вот код пожалуйсто подскажите в чём проблема?

<?php

if(isset($_FILES["myfile"]))
{
$catalog = "../image/";
if (is_dir($catalog))
{
$myfile = $_FILES["myfile"]["tmp_name"];
$myfile_name = $_FILES["myfile"]["name"];
if(!copy($myfile, $catalog)) echo 'Ошибка при копировании файла '.$myfile_name;
}
else mkdir('../image/');
}

?>



Спустя 3 минуты, 31 секунда (7.03.2011 - 20:57) sharki написал(а):
Используй move_uploaded_file вместо copy

И кстати там в противном случае, у тебя создается директория, и всё...и скрипт кончается, т.е если нет директории он у тебя создает директорию и прекращает работу? без закачки файла?

Спустя 5 минут, 36 секунд (7.03.2011 - 21:03) Niksik написал(а):
Всёравно не работает он выдаёт сообшение о том что загрузка удолась но файл не закачевается в чём плоблема подскажите пож?

Спустя 2 минуты, 2 секунды (7.03.2011 - 21:05) sharki написал(а):
<?php

if(isset($_FILES["myfile"]))
{
$myfile_name = $_FILES["myfile"]["name"];
$myfile = $_FILES["myfile"]["tmp_name"];
$catalog = "../image/";
if (is_dir($catalog)) {
$catalog = "../image/" . $myfile_name;
if(!move_uploaded_file($myfile, $catalog))
echo 'Ошибка при копировании файла '.$myfile_name;
}
else
mkdir('../image/');
}

?>

Спустя 1 минута, 32 секунды (7.03.2011 - 21:06) Niksik написал(а):
Всё равно не капирует.Блииин

Спустя 1 минута, 42 секунды (7.03.2011 - 21:08) sharki написал(а):
Niksik
Значит проверяй правильность пути загрузки

Да и вообще сначало тебе надо удостовериться что файлы корректно закачиваются, без всяких там созданий папок и т.п т.е


Создай эту папку где тебе нужно и закачай туда

if(isset($_FILES)){
$Fname = $_FILES["myfile"]["name"];
$Tname = $_FILES["myfile"]["tmp_name"];
$catalog = "../image/" . $Fname;
if(!move_uploaded_file($Tname, $catalog))
echo 'Ошибка при копировании файла '.$Fname;
else
echo 'Всё удачно';

}

Спустя 2 минуты, 7 секунд (7.03.2011 - 21:10) Niksik написал(а):
Каталог создаёт а файл туда не копирует

Спустя 33 секунды (7.03.2011 - 21:11) Niksik написал(а):
В смысле

Спустя 2 минуты, 33 секунды (7.03.2011 - 21:13) Dron19 написал(а):
в каталог помести просто image и попробуй

Спустя 45 секунд (7.03.2011 - 21:14) Niksik написал(а):
Я и это делал

Спустя 46 секунд (7.03.2011 - 21:15) Dron19 написал(а):
да кстати, саму папку без ../ попробуй создать и не забудь прикрутить ей имя файла

Спустя 3 минуты, 34 секунды (7.03.2011 - 21:18) Niksik написал(а):
Всё равно вот код

if(isset($_FILES["1"]))
{
$myfile_name = $_FILES["1"]["name"];
$myfile = $_FILES["1"]["tmp_name"];
$catalog = "image/" . $myfile_name;
if (is_dir($catalog))
{
if(!move_uploaded_file($myfile, $catalog)) echo 'Ошибка при копировании файла '.$myfile_name;
}
else mkdir('image/');
}

?>

а вот форма

<FORM ENCTYPE="multipart/form-data" ACTION="action.php" METHOD=POST>
<INPUT NAME="1" TYPE="file">
<br /><INPUT TYPE="submit" value="Передать файл">
</FORM>
посмотрите правильно?

Спустя 4 минуты, 3 секунды (7.03.2011 - 21:22) Dron19 написал(а):
вот набросал кратенький примерчик, у меня все работает, сделай под себя и готово


error_reporting(0);
if(isset($_FILES['file'])) {

$name = $_FILES['file']['name'];
$tmp_name = $_FILES['file']['tmp_name'];

if(copy($tmp_name, 'images/'.$name)) echo 'ok'; else {

mkdir('images');
if(copy($tmp_name, 'images/'.$name)) echo 'ok';

else
echo 'sorry';

}

}



html формочка

<form enctype="multipart/form-data" method="post">
<input
type="file" name="file">
<input
type="submit" value="go" />
</form>


Спустя 1 минута, 38 секунд (7.03.2011 - 21:24) Dron19 написал(а):
у тебя логика скрипта неправильная, ты сначала в каталог помещаешь вот такую строку image/имя файла.расширение
а потом смотришь, папка ли это. естественно это не папка и закачку он просто пропустит и простот создаст папку, смотри на мой пример. Но это чисто наброски, сам потом доведешь до ума

Спустя 1 минута, 56 секунд (7.03.2011 - 21:26) Dron19 написал(а):
ну что?

Спустя 4 минуты, 28 секунд (7.03.2011 - 21:30) Niksik написал(а):
Брат теперь не папку не создаёт не файл не закачивает

Спустя 2 минуты, 25 секунд (7.03.2011 - 21:33) Niksik написал(а):
Короче полная жопа а может поставить move_uploaded_file

Спустя 21 минута, 50 секунд (7.03.2011 - 21:55) Niksik написал(а):
Мужики а надо чтонибудь настраивать httpd.conf?

Спустя 6 минут, 14 секунд (7.03.2011 - 22:01) Dron19 написал(а):
нет, вот тот пример, что я тебе привел у меня работает отлично, ты в дримвивере проверяешь? Через тотал командер зайди и посмотри в папку

Спустя 2 минуты, 8 секунд (7.03.2011 - 22:03) Niksik написал(а):
Через топал в нутри тоже пусто ну смотри вот код

<?php
if(isset($_FILES))
{
$Fname = $_FILES['file']["name"];
$Tname = $_FILES['file']["tmp_name"];
$catalog = "image/" . $Fname;
if(!copy($Tname, $catalog))
{ mkdir('image/');
echo 'Ошибка при копировании файла '.$Fname;
}
else
{

echo 'Всё удачно';
}

}
?>

я сам не понимаю почему он не работает

Спустя 22 минуты, 26 секунд (7.03.2011 - 22:26) Niksik написал(а):
Всё брат спасибо просто я попутал адрес в action и указал путь не к тому скрипту

Спустя 39 минут, 32 секунды (7.03.2011 - 23:05) Dron19 написал(а):
Niksik, да, бывает и такое

Спустя 9 часов, 57 минут, 15 секунд (8.03.2011 - 09:02) Niksik написал(а):
слушай брат а как файл занести в базу данных?не подскажеш?

Спустя 1 час, 48 минут, 29 секунд (8.03.2011 - 10:51) sharki написал(а):
Niksik
В бд заносится только имя файла, или полный путь..а сам файл в папке лежит...и потом когда вытаскиваешь имя файла, тупо указываешь путь и т.п

Спустя 14 минут, 37 секунд (8.03.2011 - 11:05) Niksik написал(а):
Ну а как это делается простые данные я и сам нефиг делать мого а вот файлами занялся только вчера можеш помоч?

Спустя 4 минуты, 25 секунд (8.03.2011 - 11:10) Niksik написал(а):
Точнее простые данные сам нефиг сделаю а с этим ешё разобраться надо

Спустя 3 минуты, 55 секунд (8.03.2011 - 11:14) sharki написал(а):
Когда успешно закачивается, дальше тупо делаешь вставку INSERT'ом в БД имя файла допустим вот это $_FILES['file']["name"], и всё

INSERT into `files` ('nameF') VALUES ('$_FILES["file"]["name"]')

Потом когда нужно вывести из бд имя файла, делаешь все по стандарту SELECT'ом
и там в массиве будет содержаться имя файла, а там куда хочешь туда и суй это имя файла, допустим чтобы вывести изображение

.......

echo '<img src="/upload/' . $row['name'] . '">'; // и браузер тебе выведет картинку с именем которое находится здесь $row['name'], в директории /upload/

.........

Спустя 6 минут, 59 секунд (8.03.2011 - 11:21) Niksik написал(а):
Брат красавет ну я тебя увожаю ты настаяший мужик wink.gif

Спустя 48 минут, 1 секунда (8.03.2011 - 12:09) Niksik написал(а):
Слушай последний вопрос а если мне надо вывести все изображения как надо написать?

Спустя 4 минуты, 26 секунд (8.03.2011 - 12:13) sharki написал(а):
по циклу пускай
while($row = mysql_fetch_assoc($result)) {
.......
}

Спустя 4 минуты, 41 секунда (8.03.2011 - 12:18) Niksik написал(а):
а можеш полностью написать?

Спустя 1 минута, 20 секунд (8.03.2011 - 12:19) sharki написал(а):
$result = mysql_query("SELECT........");

while($row = mysql_fetch_assoc($result)) {
echo '<img src="/upload/' . $row['name'] . '">';
}

Спустя 6 минут, 16 секунд (8.03.2011 - 12:25) Niksik написал(а):
Ты извени что достаю просто я недавно начал phpизучать тюфяк еше

Спустя 1 минута, 16 секунд (8.03.2011 - 12:27) sharki написал(а):
Так и изучай основы, зачем в практику полез ? =)

Спустя 12 минут, 29 секунд (8.03.2011 - 12:39) Niksik написал(а):
Я теорию знаю но теория и практика разные веши

Спустя 2 минуты, 47 секунд (8.03.2011 - 12:42) Niksik написал(а):
Я теорию знаю но теория и практика разные веши

Спустя 22 минуты, 24 секунды (8.03.2011 - 13:04) Niksik написал(а):
Ну всё спасибо брат

Спустя 46 минут, 4 секунды (8.03.2011 - 13:50) Dron19 написал(а):
без практики никуда к моему сожалению sad.gif

Спустя 15 минут, 38 секунд (8.03.2011 - 14:06) sharki написал(а):
Она уместна, и полезна, когда теорию уже [орошо знаешь..а тыкать пальцем в программировании как то глупо и слишком нервозно biggrin.gif

Спустя 15 минут, 22 секунды (8.03.2011 - 14:21) Niksik написал(а):
Да всё норм мне хватает теории и практики.

Спустя 2 часа, 43 минуты, 16 секунд (8.03.2011 - 17:05) alavasters написал(а):
)) biggrin.gif

Спустя 22 часа, 2 минуты, 20 секунд (9.03.2011 - 15:07) Niksik написал(а):
Да знаю я теорию,я просто хочу сказать,что без практики теория нечто!

Спустя 19 часов, 49 минут, 52 секунды (10.03.2011 - 10:57) systempapa написал(а):
:rolleyes: эХ! Всем привет! столкнулся с такой проблемой, использую аякс для загрузки нескольких файлов с возможностью присвоения (кому эти файлы прикрепить)

начну с формы (инекс.пхп):

<html>
<head>
<title>
Ajax File Uploader</title>
<meta
http-equiv="content-type" content="text/html; charset=utf-8" />
<script
type="text/javascript" src="js/jquery-1.3.1.min.js"></script>
<script
type="text/javascript" src="js/jquery.MultiFile.js"></script>
<script
type="text/javascript" src="js/jquery.form.js"></script>
<script
type="text/javascript" src="js/jquery.blockUI.js"></script>
<link
href="css/style.css" rel="stylesheet" type="text/css">
<script
type="text/javascript">
$(document).ready(function(){

$('.MultiFile').MultiFile({
accept:'jpg|gif|bmp|png|rar', max:50, STRING: {
remove:'удалить',
file:'$file',
selected:'Выбраны: $file',
denied:'Неверный тип файла: $ext!',
duplicate:'Этот файл уже выбран:\n$file!'
}
}
);

$("#loading").ajaxStart(function(){
$(this).show();
})
.
ajaxComplete(function(){
$(this).hide();
});


$('#uploadForm').ajaxForm({
beforeSubmit: function(a,f,o) {
o.dataType = "html";
$('#uploadOutput').html('Submitting...');
},
success: function(data) {
var $out = $('#uploadOutput');
$out.html('Form success handler received: <strong>' + typeof data + '</strong>');
if (typeof data == 'object' && data.nodeType)
data = elementToString(data.documentElement, true);
else if (typeof data == 'object')
data = objToString(data);
$out.append('<div><pre>'+ data +'</pre></div>');
}
}
);
});
</script>
</head>

<body>
<form
id="uploadForm" action="doajaxfileupload.php" method="post" enctype="multipart/form-data">
<input
name="MAX_FILE_SIZE" value="1000000" type="hidden"/>
File: <input name="fileToUpload[]" id="fileToUpload" class="MultiFile" type="file"/>
Кому:<input type="text" name="whom"/>
<input
value="Submit" type="submit"/>
</form>
<img
id="loading" src="loading.gif" style="display:none;"/>
<div
id="uploadOutput"></div>
</body>
</html>



Здесь вроде все понятно, переходим к вкуснинькому,собственно тут и ошибка, сам скрипт :

<?php
$error = "";
$msg = "";
$fileElementName = 'fileToUpload';
$i = 0;
$files_count = sizeof($_FILES[$fileElementName]["name"]);

//begin

$path="/home/***/*******/****/*****/upload/";
$path2="/*****/upload/";
>>>
Начало ошибки здесь
>>>>if(copy($_FILES['fileToUpload']["tmp_name"],
>>>>
$path.$_FILES['fileToUpload']["name"]))

$fn=$_FILES['"fileToUpload"']["name"];
$whom=$_POST['whom'];
$wh=$path2.$fn;
$date = date('Y-m-d');
@ $db = mysql_connect("*****","**","*");
if (!$db)
{
echo "Error: Could not connect to database. Please try again later . " ;
exit;
}
mysql_select_db( "******");
$qs=mysql_query("INSERT INTO `******`.`reports` (`id`,`name`,`owners`,`date`,`dir`) VALUES (null,'".$fn."','".$whom."','".$date."','".$wh."');");
echo ($qs);
//
//end

for ($i = 0; $i < $files_count-1; $i++) {
if(!empty($_FILES[$fileElementName]['error'][$i]))
{
switch($_FILES[$fileElementName]['error'][$i])
{

case '1':
$error = 'размер загруженного файла превышает размер установленный параметром upload_max_filesize в php.ini ';
break;
case '2':
$error = 'размер загруженного файла превышает размер установленный параметром MAX_FILE_SIZE в HTML форме. ';
break;
case '3':
$error = 'загружена только часть файла ';
break;
case '4':
$error = 'файл не был загружен (Пользователь в форме указал неверный путь к файлу). ';
break;
case '6':
$error = 'неверная временная дирректория';
break;
case '7':
$error = 'ошибка записи файла на диск';
break;
case '8':
$error = 'загрузка файла прервана';
break;
case '999':
default:
$error = 'No error code avaiable';
}
}
elseif(empty($_FILES[$fileElementName]['tmp_name'][$i]) || $_FILES[$fileElementName]['tmp_name'][$i] == 'none')
{
$error = 'No file was uploaded..';
}else
{
if (file_exists("upload/" . $_FILES[$fileElementName]['name'][$i])){
$error =$_FILES[$fileElementName]['name'][$i] . " уже существует. ";
}
else{
$msg .= " File Name: " . $_FILES[$fileElementName]['name'][$i] . "<br/>";
//$msg .= " File Temp Name: " . $_FILES['fileToUpload']['tmp_name'] . "<br/>";
$msg .= " File Type: " . $_FILES[$fileElementName]['type'][$i] . "<br/>";
$msg .= " File Size: " . (@filesize($_FILES[$fileElementName]['tmp_name'][$i])/ 1024)."Kb";
move_uploaded_file($_FILES[$fileElementName]['tmp_name'][$i], "upload/" . $_FILES[$fileElementName]['name'][$i]);
}
//for security reason, we force to remove all uploaded file
@unlink($_FILES[$fileElementName][$i]);
}
echo "{";
echo "error: '" . $error . "',\n";
echo "msg: '" . $msg . "'\n";
echo "}";
}
?>



Сам текст ошибки следующий:

Warning: copy(Array) [function.copy]: failed to open stream: No such file or directory in /home/virtwww/w_telemetria72-ru_66081374/http/ajax/doajaxfileupload.php on line 13

помогите пожалуйста :(

работает: загрузка файлов в папку, присвоение конкретному пользователю, дата
не рабоатет: имя файла не загоняется в таблицу, и вышеописанная ошибка :)

Спустя 1 день, 9 часов, 22 минуты, 4 секунды (11.03.2011 - 20:19) Niksik написал(а):
Что это?


mysql_select_db( "******");
$qs=mysql_query("INSERT INTO `******`.`reports` (`id`,`name`,`owners`,`date`,`dir`) VALUES (null,'".$fn."','".$whom."','".$date."','".$wh."');");


Вот смотри


mysql_select_db( "******");
$qs = mysql_query("INSERT INTO `******`.`reports` (`id`,`name`,`owners`,`date`,`dir`) VALUES (null,"'$fn','$whom','$date','$wh'")",$db);

Спустя 2 дня, 11 часов, 23 минуты, 44 секунды (14.03.2011 - 07:43) systempapa написал(а):
Цитата (Niksik @ 11.03.2011 - 17:19)
Что это?


mysql_select_db( "******");
$qs=mysql_query("INSERT INTO `******`.`reports` (`id`,`name`,`owners`,`date`,`dir`) VALUES (null,'".$fn."','".$whom."','".$date."','".$wh."');");


Вот смотри


mysql_select_db( "******");
$qs = mysql_query("INSERT INTO `******`.`reports` (`id`,`name`,`owners`,`date`,`dir`) VALUES (null,"'$fn','$whom','$date','$wh'")",$db);

Это так синтаксически правильно? на работу ж это не влияет сильным образом?

Спустя 2 часа, 32 минуты, 12 секунд (14.03.2011 - 10:15) Niksik написал(а):
Брат это не только синтаксически правельно но и вобшем правельно а

 mysql_select_db( "******");
$qs=mysql_query("INSERT INTO `******`.`reports` (`id`,`name`,`owners`,`date`,`dir`) VALUES (null,'".$fn."','".$whom."','".$date."','".$wh."');");


я даже не знаю как это работать будет

Спустя 3 минуты, 15 секунд (14.03.2011 - 10:18) sharki написал(а):
Niksik
Не надо учить плохому =) у него все правильно за исключением пару моментов

Спустя 18 минут, 12 секунд (14.03.2011 - 10:36) systempapa написал(а):
ohmy.gif лучше помогите ее на ноги поставить smile.gif

Спустя 12 минут, 15 секунд (14.03.2011 - 10:49) Niksik написал(а):
В смысле плохому? я всё правельно паказал.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.