Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Добавить возможность удаления / 24 сообщений из 24, страница 1 из 1
02.12.2018, 08:11
    #39741588
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
Использую загрузчик ajaxupload.3.5, всё работает хорошо.
Как можно прикрутить возможность удаления загружаемых файлов?
...
Рейтинг: 0 / 0
02.12.2018, 13:07
    #39741637
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
kasper_Использую загрузчик ajaxupload.3.5, всё работает хорошо.
Как можно прикрутить возможность удаления загружаемых файлов?
Самому код написать.

Вот загрузили вы файл на сервер и как он у вас там идентифицируется: именем, гуидом, числом, путём?
Возвращаете этот идентификатор на клиента и там используете в запросе на удаление.
...
Рейтинг: 0 / 0
02.12.2018, 14:43
    #39741670
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
При обработке формы, где выбираются загружаемые файлы, выбранные файлы хранятся во временной папке на сервере (т.е. каждый имеет имя, путь), на форме отображаются их превьюхи.
Мне нужно, чтобы без перегрузки обрабатываемой формы я мог удалять какие-нибудь выбранные для загрузки файлы.
...
Рейтинг: 0 / 0
02.12.2018, 14:54
    #39741674
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
kasper_на форме отображаются их превьюхи.они как показывают новый файл залитый другим?
Изучайте MVC.
...
Рейтинг: 0 / 0
02.12.2018, 15:03
    #39741678
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
kasper_При обработке формы, где выбираются загружаемые файлы, выбранные файлы хранятся во временной папке на сервере (т.е. каждый имеет имя, путь), на форме отображаются их превьюхи.
Мне нужно, чтобы без перегрузки обрабатываемой формы я мог удалять какие-нибудь выбранные для загрузки файлы.
Тут несколько путей:
1. удалять сразу из временной папки, тогда Ajax запрос на сервер с передачей идентификатора, или имени файла
2. удалять просто с формы их превьюхи, а временную папку чистить по расписанию, или таймеру на сервере в фоне
3. удалять превьюху, а вместо неё оставлять hidden поле с именем deleted_files[], тогда при сабмите формы на сервер придёт массив идентификаторов, или имён, что надо удалить из временной папки
...
Рейтинг: 0 / 0
02.12.2018, 15:09
    #39741681
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
[quot Дмитрий Мух]kasper_3. удалять превьюху, а вместо неё оставлять hidden поле с именем deleted_files[], тогда при сабмите формы на сервер придёт массив идентификаторов, или имён, что надо удалить из временной папки
Вот такой вариант, наверное, предпочтительнее.
Проблема в том, что я не силен как прописать это в скрипте
...
Рейтинг: 0 / 0
02.12.2018, 15:12
    #39741682
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
Дмитрий Мухhidden поле с именем deleted_files[]
Просто deleted_files :
Код: html
1.
2.
3.
<input name="deleted_files" type="hidden" value="987654321">
...
<input name="deleted_files" type="hidden" value="123456789">


где 987654321, 123456789 - это индентификаторы файлов (лучше использовать hash, или guid, чтобы злоумышленник не смог перебирать).
...
Рейтинг: 0 / 0
02.12.2018, 15:15
    #39741683
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
kasper_Дмитрий Мух3. удалять превьюху, а вместо неё оставлять hidden поле с именем deleted_files, тогда при сабмите формы на сервер придёт массив идентификаторов, или имён, что надо удалить из временной папки
Вот такой вариант, наверное, предпочтительнее.
Проблема в том, что я не силен как прописать это в скрипте
Такой вариант ещё может пригодиться, если понадобиться редактировать ранее загруженную форму.
И это редактирование можно будет отменить.

То есть пользователь загрузил. Через день решил удалить пару файлов, открыл, нажал на крестик. Передумал и отменил.
В этом случае ничего удалять не надо.
...
Рейтинг: 0 / 0
02.12.2018, 15:17
    #39741684
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
kasper_Проблема в том, что я не силен как прописать это в скриптеА конкретнее? На какой Вы стадии изучения JavaScript?
Вставлять элементы на страницу научились уже?
...
Рейтинг: 0 / 0
02.12.2018, 15:18
    #39741686
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
а как удалить превью?
...
Рейтинг: 0 / 0
02.12.2018, 15:19
    #39741687
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
с JavaScript совсем не силен, с php - проблем нет
...
Рейтинг: 0 / 0
02.12.2018, 15:21
    #39741688
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<script type="text/javascript" >
	$(function(){
		var btnUpload=$('#upload');
		var status=$('#status');
		new AjaxUpload(btnUpload, {
			action: 'http://сайт/upload-file.php',
			name: 'uploadfile',
			onSubmit: function(file, ext){
				if (! (ext && /^(bmp|jpg|png|jpeg|gif)$/.test(ext))){
					// extension is not allowed
					status.text('Поддерживаемые форматы bmp, jpg, jpeg, png, gif');
					return false;
				}
				status.text('Загрузка...');
			},
			onComplete: function(file, response){
				//On completion clear the status
				status.text('');
				//Add uploaded file to list
				if(response==="success"){
					$('<li></li>').appendTo('#files').html('<img src="http://сайт/Uploads/'+file+'" alt=""><br>'+file).addClass('success');
					$('.success').attr('id', 'value');
				} else{
					$('<li></li>').appendTo('#files').text('Файл не загружен! ' + file).addClass('error_body');
				}
			}
		});
	});
</script>


так обрабатывается загрузка
...
Рейтинг: 0 / 0
02.12.2018, 15:23
    #39741690
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
можно, наверное, к каждой картинке навесить типа крестика, а потом обработать его нажатие как удаление
...
Рейтинг: 0 / 0
02.12.2018, 15:25
    #39741691
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
Код: javascript
1.
$('.success').attr('id', 'value');


это я экспериментирую с добавлением идентификатора
...
Рейтинг: 0 / 0
02.12.2018, 15:36
    #39741693
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
что вроде такого?

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$('#id-нужного-элемента').on('click', function(e) {
        e.preventDefault();
        var $this = $(this),
        data = $this.data();
        
        $.ajax({
            url: '/delete-file/',
            method: 'POST',
            data: data,
            success: function(d) {
                console.log(d);
$( "#id-нужного-элемента" ).remove();
            },
            error: function(d) {
                console.log(d);
            }
        })
    })
...
Рейтинг: 0 / 0
02.12.2018, 15:39
    #39741696
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
kasper_а как удалить превью?
С такими вопросами надо просто справочник открыть по тому же jQuery, что Вы используете.
...
Рейтинг: 0 / 0
02.12.2018, 15:40
    #39741698
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
kasper_можно, наверное, к каждой картинке навесить типа крестика, а потом обработать его нажатие как удаление
Можно
...
Рейтинг: 0 / 0
02.12.2018, 15:42
    #39741699
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
kasper_что вроде такого?

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$('#id-нужного-элемента').on('click', function(e) {
        e.preventDefault();
        var $this = $(this),
        data = $this.data();
        
        $.ajax({
            url: '/delete-file/',
            method: 'POST',
            data: data,
            success: function(d) {
                console.log(d);
$( "#id-нужного-элемента" ).remove();
            },
            error: function(d) {
                console.log(d);
            }
        })
    })


Типа того. Это вариант 1.

Если не нужна возможность отменить удаление, то можете его использовать.
...
Рейтинг: 0 / 0
02.12.2018, 15:55
    #39741703
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
kasper_
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<script type="text/javascript" >
	$(function(){
		var btnUpload=$('#upload');
		var status=$('#status');
		new AjaxUpload(btnUpload, {
			action: 'http://сайт/upload-file.php',
			name: 'uploadfile',
			onSubmit: function(file, ext){
				if (! (ext && /^(bmp|jpg|png|jpeg|gif)$/.test(ext))){
					// extension is not allowed
					status.text('Поддерживаемые форматы bmp, jpg, jpeg, png, gif');
					return false;
				}
				status.text('Загрузка...');
			},
			onComplete: function(file, response){
				//On completion clear the status
				status.text('');
				//Add uploaded file to list
				if(response==="success"){
					$('<li></li>').appendTo('#files').html('<img src="http://сайт/Uploads/'+file+'" alt=""><br>'+file).addClass('success');
					$('.success').attr('id', 'value');
				} else{
					$('<li></li>').appendTo('#files').text('Файл не загружен! ' + file).addClass('error_body');
				}
			}
		});
	});
</script>



так обрабатывается загрузка
Ну то есть Вы формируете список загруженных файлов.
С каждым элементом списка необходимо ассоциировать идентификатор конкретного файла, к примеру через jQuery .data()
И потом использовать при удалении, примерно как Вы выше написали.
...
Рейтинг: 0 / 0
02.12.2018, 15:57
    #39741704
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
kasper_,

но не забывайте про вопрос: Что будете делать, если понадобится кнопка "Отмена"?
...
Рейтинг: 0 / 0
02.12.2018, 16:02
    #39741705
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
Дмитрий Мух, спасибо, буду копать.
А при отмене заполнения формы у меня очищается папка с временно подгруженными файлами, они перераспределяются далее при ОК.
...
Рейтинг: 0 / 0
02.12.2018, 16:19
    #39741706
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
kasper_,

после нажатия OK форму и список файлов у пользователя уже нет возможности редактировать?
...
Рейтинг: 0 / 0
02.12.2018, 16:50
    #39741713
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
Дмитрий МухjQuery .data() с этим надо быть острожным
jQuery .data( key, value ) это совсем не то что "data-"
...
Рейтинг: 0 / 0
02.12.2018, 17:52
    #39741725
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить возможность удаления
вадяДмитрий МухjQuery .data() с этим надо быть острожным
jQuery .data( key, value ) это совсем не то что "data-"
Там по ссылке всё расписано. Достаточно прочитать всё и внимательно.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Добавить возможность удаления / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]