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

Вот загрузили вы файл на сервер и как он у вас там идентифицируется: именем, гуидом, числом, путём?
Возвращаете этот идентификатор на клиента и там используете в запросе на удаление.
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #39741670
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При обработке формы, где выбираются загружаемые файлы, выбранные файлы хранятся во временной папке на сервере (т.е. каждый имеет имя, путь), на форме отображаются их превьюхи.
Мне нужно, чтобы без перегрузки обрабатываемой формы я мог удалять какие-нибудь выбранные для загрузки файлы.
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #39741674
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_на форме отображаются их превьюхи.они как показывают новый файл залитый другим?
Изучайте MVC.
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #39741678
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_При обработке формы, где выбираются загружаемые файлы, выбранные файлы хранятся во временной папке на сервере (т.е. каждый имеет имя, путь), на форме отображаются их превьюхи.
Мне нужно, чтобы без перегрузки обрабатываемой формы я мог удалять какие-нибудь выбранные для загрузки файлы.
Тут несколько путей:
1. удалять сразу из временной папки, тогда Ajax запрос на сервер с передачей идентификатора, или имени файла
2. удалять просто с формы их превьюхи, а временную папку чистить по расписанию, или таймеру на сервере в фоне
3. удалять превьюху, а вместо неё оставлять hidden поле с именем deleted_files[], тогда при сабмите формы на сервер придёт массив идентификаторов, или имён, что надо удалить из временной папки
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #39741681
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Дмитрий Мух]kasper_3. удалять превьюху, а вместо неё оставлять hidden поле с именем deleted_files[], тогда при сабмите формы на сервер придёт массив идентификаторов, или имён, что надо удалить из временной папки
Вот такой вариант, наверное, предпочтительнее.
Проблема в том, что я не силен как прописать это в скрипте
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #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
Добавить возможность удаления
    #39741683
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_Дмитрий Мух3. удалять превьюху, а вместо неё оставлять hidden поле с именем deleted_files, тогда при сабмите формы на сервер придёт массив идентификаторов, или имён, что надо удалить из временной папки
Вот такой вариант, наверное, предпочтительнее.
Проблема в том, что я не силен как прописать это в скрипте
Такой вариант ещё может пригодиться, если понадобиться редактировать ранее загруженную форму.
И это редактирование можно будет отменить.

То есть пользователь загрузил. Через день решил удалить пару файлов, открыл, нажал на крестик. Передумал и отменил.
В этом случае ничего удалять не надо.
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #39741684
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_Проблема в том, что я не силен как прописать это в скриптеА конкретнее? На какой Вы стадии изучения JavaScript?
Вставлять элементы на страницу научились уже?
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #39741686
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как удалить превью?
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #39741687
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с JavaScript совсем не силен, с php - проблем нет
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #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
Добавить возможность удаления
    #39741690
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно, наверное, к каждой картинке навесить типа крестика, а потом обработать его нажатие как удаление
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #39741691
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
$('.success').attr('id', 'value');


это я экспериментирую с добавлением идентификатора
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #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
Добавить возможность удаления
    #39741696
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_а как удалить превью?
С такими вопросами надо просто справочник открыть по тому же jQuery, что Вы используете.
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #39741698
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_можно, наверное, к каждой картинке навесить типа крестика, а потом обработать его нажатие как удаление
Можно
...
Рейтинг: 0 / 0
Добавить возможность удаления
    #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
Добавить возможность удаления
    #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
Добавить возможность удаления
    #39741704
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_,

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

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


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