Strict Standards: Resource ID#35 used as offset, casting to integer (35) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#38 used as offset, casting to integer (38) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Загрузка файлов частями при помощи php
ТвойWeb » WebMaster класс » PHP/Perl » Загрузка файлов частями при помощи php

Страниц (2): [1] 2 »
 

1. avdey - 22 Января, 2008 - 14:27:42 - перейти к сообщению
Мне нужно на сервер грузить большие файлы частями (потом бы я их по одной отправлял на email, не сохраняя в файл на сервере). Я думал, как это можно реализовать при помощи php, но ничего не придумал. Знаю только, как грузить полностью весь файл: либо file_get_contents, либо join("", file()), это я пробовал, работает. А если мне, например, нужно загрузить файл в 100 мегов по 5 мегов за раз, как это сделать?
2. awep - 22 Января, 2008 - 15:25:54 - перейти к сообщению
чото я не понял смысл проблемы...
если тебе нужно загрузить файл на сервер по частям, то тут тебе PHP никак не поможет. Тут поможет WinRar (там есть возможность разбиться файл на куски).
Если же тебе нужно прочитать файл который уже на сервере, то проще тогда юзать fseek() и fread() с нужными параметрами длины и тп.

если тебе нужно было не это, тогда попробуй еще раз проблемку объясни попонятнее плиз
3. Alone - 23 Января, 2008 - 01:34:31 - перейти к сообщению
avdey
Вряд ли такое существует. Дозагрузки вроде такой не бывает. Если конект оборвался то потом с нуля надо снова грузить.
А было бы классно конечно частями (этапами).
Придётся тебе все 100 сразу заливать.
4. Furax - 23 Января, 2008 - 04:32:12 - перейти к сообщению
Склеить файлы php может, но придётся разбивать их ещё до отправки и грузить по одному.
5. avdey - 23 Января, 2008 - 06:55:30 - перейти к сообщению
Дело в том, что у меня бесплатный email, но платный инет-трафик, а на моем сайте остается неизрасходованный месячный лимит трафика, вот я и решил грузить из инета нужные файлы и отправлять их на свой ящик. С mp3 и небольшими файлами это проходит успешно, но не бедешь же грузить в строку 100 мегов или больше, хостинг-сервер не позволит, там же лимит на память установлен (на моем сервере кажется мегов 30 лимит).

Вот мне и нужно грузить (дозагружать) частями. Попробовал fseek, как awep посоветовал, но он работает только с файлами, которые на сервере, по http-ссылкам не хочет (опять же, как awep сказал). Как быть? Может на каком-то другом языке для сервера можно простенькую программку написать?
6. avdey - 23 Января, 2008 - 11:28:55 - перейти к сообщению
Тут один человек посоветовал про cURL и Range почитать. Про cURL смотрел, с первого взгляда не понял, завтра буду разбираться. Может кто-нибудь посоветует что-нить по этому поводу.
7. Furax - 23 Января, 2008 - 23:24:29 - перейти к сообщению
avdey
Да можно и на том же PHP, только сокетами с догрузкой. Почитай, какие заголовки тот же FlashGet при докачке шлёт, да и всё...
8. avdey - 24 Января, 2008 - 08:14:25 - перейти к сообщению
Furax пишет:
Да можно и на том же PHP, только сокетами с догрузкой. Почитай, какие заголовки тот же FlashGet при докачке шлёт, да и всё...


А можно поподробне про сокеты, какие операторы там нужны и как их нужно здесь использовать, ни разу с этим не сталкивался.
9. Furax - 24 Января, 2008 - 08:39:57 - перейти к сообщению
10. avdey - 18 Февраля, 2008 - 10:19:33 - перейти к сообщению
Долго не отвечал, не было времени дорваться до этого дела.

В общем, получилось, при помощи curl. Правда там свои тонкости есть, как и везде, пришлось немного повозиться.

Всем спасибо за советы!

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0426]     [ Gzipped ]