powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / че-то не передается файл
25 сообщений из 28, страница 1 из 2
че-то не передается файл
    #38977586
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добрый день! помогите разобраться почему не передается файл из js в обработчик php ? $_POST - пустой

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 Recorder.setupDownload = function(blob, filename){
    var url = (window.URL || window.webkitURL).createObjectURL(blob);
    var link = document.getElementById("save");
    link.href = url;
    link.download = filename || 'output.wav';

    var data = new FormData();
    data.append("data", blob, link.download);
    var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : new activeXObject("Microsoft.XMLHTTP");
    xhr.open( 'post', '/save.php', true );
    xhr.send(data);

}


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?php
if(!empty($_POST['data'])){

        $data = $_POST['data'];
        $fname = mktime() . ".wav";//generates random name

        $file = fopen("audio/" .$fname, 'w');//creates new file
        fwrite($file, $data);
        fclose($file);
}
?>
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977733
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
loginovru,
А что, при отправке файла заполняется массив $_POST?
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977741
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunaksergeyloginovru,
А что, при отправке файла заполняется массив $_POST?
так вот в этом то и вопрос, почему он не заполняется ?
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977745
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
loginovru,
это был риторический вопрос. тебе нужен массив $_FILES
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977752
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunaksergeyloginovru,
это был риторический вопрос. тебе нужен массив $_FILES
array(1) { ["data"]=> array(5) { ["name"]=> string(17) "myRecording00.wav" ["type"]=> string(9) "audio/wav" ["tmp_name"]=> string(33) "/home/data/mod-tmp/php2O4QcY" ["error"]=> int(0) ["size"]=> int(327724) } }
блин, как же сам бинарник вытащить ? )
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977760
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977761
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunaksergeyloginovru,
http://www.php.su/phphttp/?uploads
это не то, что мне нужно... у меня есть аудио-файл который автоматически сгенерировался, вот я хочу его просто сохранять на сервере...
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977764
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunaksergey, в этом массиве почему-то бинарника самого нету, есть размер его, название, а вот бинраника - нету.. странно...
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977768
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
яваскриптом ТАК файл не передашь.
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977769
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowяваскриптом ТАК файл не передашь.
так а файл никто и не пытается передавать, пытаюсь передать бинарник файла blob
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977774
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowяваскриптом ТАК файл не передашь.
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977778
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowScareCrowяваскриптом ТАК файл не передашь.
так а как надо передавать ? расскажите ?
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977806
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
loginovruScareCrowпропущено...

так а как надо передавать ? расскажите ?
как вариант...

если преобразовать в base64, то можно отправить из JS и принять на сервере в $_POST
не знаю какой там у тебя код, но примерно так:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
var blob=document.getElementById('my_file').files;  // <input type="file" id="my_file" accept="..." />
if (!blob) {
  // браузер не поддерживает (устарел)
} else {
  blob=blob[0];

  // здесь могут быть проверки blob.size, blob.name и т.д.

  my_reader = new FileReader();
  my_reader.readAsDataURL(blob); // преобразование в base64
  my_reader.onloadend=function(){
    ...
    data.append("data", my_reader.result || 'error', filename || 'output.wav')
    ...
  }
}



только на сервере нужно будет отсечь вначале содержимого 23 символа заголовка base64

Код: php
1.
2.
3.
4.
5.
6.
$data = get_magic_quotes_gpc() ? stripslashes($_POST['data']) : $_POST['data'];
if ($data=='error') {
    // содержимого нет
} else {
    $data = base64_decode(substr($data,23));
}
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977809
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухалтер фантоццитолько на сервере нужно будет отсечь вначале содержимого 23 символа заголовка base64
поправка: количество символов зависит от типа передаваемых данных, в общем можно посмотреть что там приходит и пофиксить.
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977811
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухалтер фантоцци, способ если честно не очень с инпатом, по безопасности лажа, можно поробывать залить какие-то скипты вредоносы! Предлагаю другой вариант сгенерить - просто ссылку и вставить ее в html с помощью js!

Код: sql
1.
<a id="save" href="blob:http://doamin.ru/a0982168-5ae2-4823-9e03-6a160821aee9" download="myRecording00.wav">



а там уже сделать обработчик который по этой ссылке, загрузит файло на сервер ? так же ведь можно ?
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977814
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
loginovruбухалтер фантоцци, способ если честно не очень с инпатом, по безопасности лажа, можно поробывать залить какие-то скипты вредоносы! Предлагаю другой вариант сгенерить - просто ссылку и вставить ее в html с помощью js!

Код: sql
1.
<a id="save" href="blob:http://doamin.ru/a0982168-5ae2-4823-9e03-6a160821aee9" download="myRecording00.wav">



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

по безопасности нет никакой лажи, на сервере нужно проверять всегда!
например в случае картинок их надо обязательно преобразовывать, чтобы PHP-вставок не было.

да и через <input type="file" ... /> браузер уже поддерживает безопасность,
можно через .type проверять тип загруженного файла перед отправкой...
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977830
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухалтер фантоцциloginovruбухалтер фантоцци, способ если честно не очень с инпатом, по безопасности лажа, можно поробывать залить какие-то скипты вредоносы! Предлагаю другой вариант сгенерить - просто ссылку и вставить ее в html с помощью js!

Код: sql
1.
<a id="save" href="blob:http://doamin.ru/a0982168-5ae2-4823-9e03-6a160821aee9" download="myRecording00.wav">



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

по безопасности нет никакой лажи, на сервере нужно проверять всегда!
например в случае картинок их надо обязательно преобразовывать, чтобы PHP-вставок не было.

да и через <input type="file" ... /> браузер уже поддерживает безопасность,
можно через .type проверять тип загруженного файла перед отправкой...
нет, зачем его скачивать, просто в начальном html добавиться строка вида которую я прислал, без перезагрузки страницы, ну чтобы от инпата уйти, так ведь можно ?
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977832
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
loginovru,

сделай тестовый пример в виде HTML-файла и выложи в соответсвующий форум,
ничего не понятно, что и как ты делаешь или хочешь сделать,
но есть подозрение, что ты не разбираешься в базовых вещах.
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977841
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухалтер фантоцциloginovru,

сделай тестовый пример в виде HTML-файла и выложи в соответсвующий форум,
ничего не понятно, что и как ты делаешь или хочешь сделать,
но есть подозрение, что ты не разбираешься в базовых вещах.
ты понимаешь что файла нету изначально ? а есть бинарник blob, что ты в инпат будешь вставлять ?
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977845
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
loginovru,

тогда вместо new FileReader()
используй функцию преобразования в base64,
можно поискать, вот например можно попробовать как работает: http://javascript.ru/php/base64_encode#comment-3803
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977849
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухалтер фантоцциloginovru,

тогда вместо new FileReader()
используй функцию преобразования в base64,
можно поискать, вот например можно попробовать как работает: http://javascript.ru/php/base64_encode#comment-3803

смотри как оно работает, есть страничка html, на ней грубо говоря есть кнопка, при нажатии которой без перезагрузки странички формируется бинарник с типом wav и создается ссылка вида:

<a id="save" href="blob:http%3A//domain.ru/77f9f236-36e5-481b-82ed-f750fd16e5cb" download="myRecording00.wav"><img src="img/save.svg"></a>

при нажатии на нее файл с именем myRecording00.wav успешно скачаивает на клинетский компьютер... но есть необходимость все такие файлы которые были сгенерированы хранить на сервере.. вот я и ищу метод как его туда поместить, типа хранилище!
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977851
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухалтер фантоцци, ты предложил метод с инпатом, который не совсем подходит, потому что файла нету... а есть просто бинарник...
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977853
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такого не может быть, чтобы не было методов закинуть бинарник на сервер и присвоить ему какое-то имя... вот я и ищу способы
...
Рейтинг: 0 / 0
че-то не передается файл
    #38977858
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
loginovru,

да забудь про input, если он не нужен,

я говорил про преобразование в base64 - думаю это единственный способ из JS отправить бинарник на сервер, не используя форму.
...
Рейтинг: 0 / 0
че-то не передается файл
    #38978031
loginovru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухалтер фантоцциloginovru,

да забудь про input, если он не нужен,

я говорил про преобразование в base64 - думаю это единственный способ из JS отправить бинарник на сервер, не используя форму.
вообщем делаю вот так, файл нормально екодируется в бейс64, но когда пытаюсь получить массив $_POST получаю, array(1) { ["data"]=> string(9) "undefined" }

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
  Recorder.setupDownload = function(blob, filename){
    var url = (window.URL || window.webkitURL).createObjectURL(blob);
    var link = document.getElementById("save");
    link.href = url;
    link.download = filename || 'output.wav';

    // alert(blob);
    // alert(JSON.stringify(blob));
    // console.log(blob);

     var reader = new window.FileReader();
       reader.readAsDataURL(blob);
       reader.onloadend = function() {
               base64data = reader.result;
               console.log(base64data);
                                         }
    var data = new FormData();
    data.append("data", reader.base64data );
    var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : new activeXObject("Microsoft.XMLHTTP");
    xhr.open( 'post', '/save.php', true );
    xhr.send(data);

  }
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / че-то не передается файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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