X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> uploadify - загрузка файлов на сервер
rasanau
rasanau
Topic Starter сообщение 10.5.2011, 18:16; Ответить: rasanau
Сообщение #1


Скрипт в HTML

[JS]<script type="text/javascript">
$(document).ready(function() {
$("#uploadify").uploadify({
'uploader' : 'scripts/uploadify.swf', // Относительный путь к файлу uploadify.swf. По умолчанию uploadify.swf
'script' : 'scripts/uploadify.php', // Относительный путь uploadify.php. По умолчанию uploadify.php.
'cancelImg' : 'scripts/cancel.png', // Относительный путь до картинки cancel.png. По умолчанию cancel.png
'folder' : 'uploads', // Путь к папке, в которой Вы хотите сохранять загружаемые файлы.
'queueID' : 'fileQueue', // ID элемента, в котором будет показываться очередь загрузки
'queueSizeLimit' : '100', // Лимит очереди (максим. число загруж файлов). По умолчанию 999
'auto' : true, // Если истина, загрузка начнется сразу после выбора файлов
'multi' : true, // Если истина, то разрешена загрузка нескольких файлов
'fileDesc' : 'all files', // Текст, который будет внизу появляющегося диалогового окна.
'fileExt' : '*.*;', // разрешенные к загрузке файлы
'sizeLimit' : 20000000, // Макс. Размер файла для каждой загрузки (в байтах).
'simUploadLimit' : 1, // Ограничение на кол-во одновременных закачек.
'buttonText' : 'File', // Текст на кнопке. По умолчанию BROWSE.
'buttonImg' : 'img/upload.png', // Путь до картинки, которая будет служить кнопкой.
'width' : 256,
'height' : 256,
});
});

</script>[/JS]
................................................................................
.........

Файл uploadify.php

[PHP]<?php


if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];

if(!$_REQUEST[folder]) $folder = '../uploads/';
else $folder = $_REQUEST['folder'];

$targetPath = $_SERVER['DOCUMENT_ROOT'] . $folder . '/';
$ext = preg_replace('/(?:.*)(\.{1}[a-zA-Z]{3,4})$/','$1', $_FILES['Filedata']['name']);
$unic_name = time().'_'.rand(0,1000).$ext;
$targetFile = str_replace('//','/',$targetPath) . $unic_name;


move_uploaded_file($tempFile,$targetFile);
echo "1";
}
?>[/PHP]
................................................................................
....

Файл check.php

[PHP]<?php

$fileArray = array();
foreach ($_POST as $key => $value) {
if ($key != 'folder') {
if (file_exists($_SERVER['DOCUMENT_ROOT'] . $_POST['folder'] . '/' . $value)) {
$fileArray[$key] = $value;
}
}
}
echo json_encode($fileArray);
?>[/PHP]
................................................................................
...........

Форма

<div id="fileQueue"></div>
<input type="file" name="uploadify" id="uploadify" />

<div id="info"></div>
<div id="info2"></div>
</div>


................................................................................
.........

Всё это используется для загрузки файлов на сервер.

Есть 3 вопроса:

1. Здесь указано что все файлы загружаются в папку uploads. Как сделать чтобы при каждой новой загрузке в папке uploads создавалась новая папка, в которую и загружаются файлы???

2. Для новой созданной папки указать максимальный размер.

3. Как сделать что бы после выполнения этого скрипта он прятался - форма загрузки пряталась???
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
VasyOk
VasyOk
сообщение 10.5.2011, 19:24; Ответить: VasyOk
Сообщение #2


Как вам помочь, если код сливается в кашу?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rasanau
rasanau
Topic Starter сообщение 10.5.2011, 23:25; Ответить: rasanau
Сообщение #3


Подправил, теперь кто-нибудь поможет?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rasanau
rasanau
Topic Starter сообщение 11.5.2011, 21:51; Ответить: rasanau
Сообщение #4


Для начала хотя бы 3 вопрос - наиболее важный.....
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
VasyOk
VasyOk
сообщение 12.5.2011, 20:12; Ответить: VasyOk
Сообщение #5


1. в файле uploadify.php у Вас логика сохранения файлов, где в функции move_uploaded_file вторым параметром забивается значение которое Вас нужно (собственно путь до директории в которой нужно сохранить файл) т.е. до этого момента нужно создать директорию с помощью функции mkdir

2. Существует такое понятие как квоты на директории
Однако не все провайдеры позволяют её использовать, да и делать скорее всего придется от лица root-пользователя.
Как вариант, можно предложить после заливки или до заливки пробегаться по всем файлом с подсчетом размера директории и на случай чего создавать какой-нибудь lock файл, с помощь которого будем проверять лить в него файлы или создавать новую директорию.

3. добавить в нужное место следующее...


[JS]
<script type="text/javascript">
$(document).ready(function() {
$("#uploadify").uploadify({
/*** тут параметры которые указаны выше и ниже дописываем ***/
onAllComplete : function () {
$('#/*id div`а в котором у Вас этот файлоприемник*/').hide();
}
});
});

</script>

[/JS]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rasanau
rasanau
Topic Starter сообщение 12.5.2011, 23:10; Ответить: rasanau
Сообщение #6


[JS]<script type="text/javascript">
$(document).ready(function() {
$("#uploadify").uploadify({
'uploader' : 'scripts/uploadify.swf', // Относительный путь к файлу uploadify.swf. По умолчанию uploadify.swf
'script' : 'scripts/uploadify.php', // Относительный путь uploadify.php. По умолчанию uploadify.php.
'cancelImg' : 'scripts/cancel.png', // Относительный путь до картинки cancel.png. По умолчанию cancel.png
'folder' : 'uploads', // Путь к папке, в которой Вы хотите сохранять загружаемые файлы.
'queueID' : 'fileQueue', // ID элемента, в котором будет показываться очередь загрузки
'queueSizeLimit' : '100', // Лимит очереди (максим. число загруж файлов). По умолчанию 999
'auto' : true, // Если истина, загрузка начнется сразу после выбора файлов
'multi' : true, // Если истина, то разрешена загрузка нескольких файлов
'fileDesc' : 'all files', // Текст, который будет внизу появляющегося диалогового окна.
'fileExt' : '*.*;', // разрешенные к загрузке файлы
'sizeLimit' : 2000000, // Макс. Размер файла для каждой загрузки (в байтах).
'simUploadLimit' : 1, // Ограничение на кол-во одновременных закачек.
'buttonText' : 'File', // Текст на кнопке. По умолчанию BROWSE.
'buttonImg' : 'img/upload.png', // Путь до картинки, которая будет служить кнопкой.
'width' : 256,
'height' : 256,

onAllComplete : function () {
$('#fin1').hide();
$('#fin3').show();

}
});
});

</script>[/JS]

Всё хорошо, но вот незадача. Прописано в коде [JS]'sizeLimit' : 2000000,[/JS]Но если это значение будет превышено всё равно в итоге получим [JS]onAllComplete : function () {
$('#fin1').hide();

} [/JS]

Как сделать что бы в таком случае (при превышении объёма) выполнялось другое условие??? Скажем не [JS]$('#fin1').hide()[/JS], а [JS]$('#fin1.1').show()[/JS]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
P0ZiTR0N
P0ZiTR0N
сообщение 13.5.2011, 11:06; Ответить: P0ZiTR0N
Сообщение #7


http://www.uploadify.com/documentation/events/onallcomplete/
Тут указаны 4 параметра возврата onallcomplete:
[filesUploaded] - The total number of files uploaded
[errors] - The total number of errors encountered
[allBytesLoaded] - The total number of bytes uploaded
[speed] - The average upload speed in KB/s

Отсюда следует, что проверять размер файла нужно до загрузки... Но это нужно чтобы у пользователя был ActiveX включен
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rasanau
rasanau
Topic Starter сообщение 13.5.2011, 12:12; Ответить: rasanau
Сообщение #8


Оказалось всё просто: нужно использовать событие "onComplete", а не "onAllComplete" - в результате если 'sizeLimit' превышен, то будет выдавать ошибку, если всё в порядке то выполнятся $('#fin1').hide() и $('#fin3').show();

[JS]<script type="text/javascript">

$(document).ready(function() {
$("#uploadify").uploadify({
'uploader' : 'scripts/uploadify.swf',
'script' : 'scripts/uploadify.php',
'cancelImg' : 'scripts/cancel.png', // Относительный путь до картинки cancel.png. По умолчанию cancel.png
'folder' : 'uploads',
'queueID' : 'fileQueue',
'queueSizeLimit' : '1',
'auto' : true,
'multi' : true,
'fileDesc' : 'only rar, zip or 7z',
'fileExt' : '*.rar',
'sizeLimit' : 2000000,
'simUploadLimit' : 1, // Ограничение на кол-во одновременных закачек. По умолчанию 1. Если значение равно 1, то загружаться будет 1 файл, а остальные будут стоять за ним в очереди. Если 2 - два загружаются, остальные ждут их и т.д
'buttonText' : 'File',
'buttonImg' : 'img/upload.png',
'width' : 256,
'height' :256,


'onComplete' : function(event, data){

$('#fin1').hide();
$('#fin3').show();
}

});

});
</script>[/JS]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) BuxarVideoUploader - Автоматическое скачивание и загрузка видео из любых/ на любые видео хостинги (YouTube, TikTok, Instagram, Facebook, Яндекс Дзен, Вконтакте, Одноклассники, Rutube, Dailymotion, d.tube, Telegram и т.д.
0 BuxarNET 1225 19.7.2023, 5:58
автор: BuxarNET
Открытая тема (нет новых ответов) FinFile - новые возможности для монетизации Ваших файлов!
3 FileXmaster 2080 25.7.2020, 16:10
автор: -Condis-
Открытая тема (нет новых ответов) Сервер для поднятия proxy ipv4
3 Panameira 2710 13.11.2018, 4:24
автор: zkalinin
Открытая тема (нет новых ответов) Добавление файлов
0 PHP_Programist 2570 25.4.2018, 12:25
автор: PHP_Programist
Открытая тема (нет новых ответов) Добавление файлов на сайт
1 Dess33 2800 8.4.2018, 2:32
автор: rasul


 



RSS Текстовая версия Сейчас: 23.4.2024, 14:21
Дизайн