@O_Nayre

Как загрузить zip на сервер не зная filename?

Суть - сторонний скрипт шлет следующий запрос:
POST /api/v1/studies/1902/album/3736/images HTTP/1.1
Host: homestead.test
Content-Type: application/zip
Content-Length: 1085179
Accept: */*
User-Agent: CFNetwork/978.0.7 Darwin/18.6.0 (x86_64)
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjAyZmMzNjQ1N2IxM2Y3ZTIwMGQ4YTE4YzEwZWEyMTBjOWZjY2VhNzBjZmZhNzlhMTZjNTVhODhiOTFhOGEwYjc1Y2UxYWI1NWFlYzdmMjdiIn0.eyJhdWQiOiIyIiwianRpIjoiMDJmYzM2NDU3YjEzZjdlMjAwZDhhMThjMTBlYTIxMGM5ZmNjZWE3MGNmZmE3OWExNmM1NWE4OGI5MWE4YTBiNzVjZTFhYjU1YWVjN2YyN2IiLCJpYXQiOjE1NjQxOTMyODAsIm5iZiI6MTU2NDE5MzI4MCwiZXhwIjoxNTk1ODE1NjgwLCJzdWIiOiIxIiwic2NvcGVzIjpbImNhc2VzIl19.XAH4ut2nnQXqzPna304s1afLQz8gh9CpCNwlm9iOyqzzNQToSfRwcD66SltZzqNNT2dxwqMBATBa6GHcghztN2OmoQORL2BKqnuZGcAGKrgKZe8mHqg6zbDnwGUD-hUqE9PqqBv1Ur7iyOYAPQtdHQCvzz5nHk-PqEY5mP0w7A5GIgmdA-wDjrrSCP-JqKeXAKrox92hUtTVQ5HlzrQvBi28Ryi0W6oie-CJNFhtd9qbH94AUwN3nwkHT-l2ESwHJXevK1ZQXV35t6fjMpq5WQDHxsW_hZb3M2bR3KQAnaevriszAcOaQbw2CBYGVEKFUFwYY69bfeuydeAwF9-21L7bwWR7nyDX3dkJXNwda5qPbr4gH7lqVDXRgwtJqwXtHnaRtS6HshIOYVK3_kjBLmveBC1mFWc7zAH3AQopdijZ9z2nspSY8Bx8sQfv5xxdO47LxlvOG_KG97HvQxr55oC97bM0SZYpLpnFukLkvDmk6Tt4pxBJrdKAIe81tsCguAFVLmuSveef7TpJBa79jIjKNnBEtpnByeF5_Co3deUqk8IgCt5AzLaxtNAb_GJhmPdTo0bC2a-NpEZlxw3InA3zE5w0lKxPNy8zUBdizZlq1kEcGBktOnkRXRf_ZwIF31ahp4iQ2OeWwofUl2xPSrbw75x5AMT4Ryxf_sOjKkI
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: keep-alive

PKù°úNY;±Å«É1.jpg¹XM÷?~Ó)ÝÒ (()
t tHwÇÒ
")-´ "!)!µìËËò[}÷ý>ïû½þ×ÿ÷å¾ïÏÌ9sæÌ9ç\\¿^(ÔT,,PÁüë5à¡¢¿hj¼X1.aºLÀï]ý¯,"aì?Äë@Bç·×7wv~A@âª&.îâ_øÖH1Í8|ÄÝ	#ÊÙG>
½^'ÄUUP0×ÑÓVRÕPü#Á¥»»36;¸¸z{*ëÉ?{úÌ`3@ú¥µ»¼Æoìêæjü¯ý#;0uÿ7/àÿ­àÙØzYc¾]ÇÍÆËÚ³TAÀ·³v÷ôÆÈó{Q~Þî¿ñÓ8è)`ðý=öw¡U¶uµõt°fWö´`×ñt³spþ§¬ÿôÿ«ââìó¯ùØ0©¾:æÙG¬¶®Oô1ø×Z[*þÆ÷0xÖ×ÁPë/íîýHï¯þØü>NOäÿnjç©ôäïö/|T~c~®

...
итд на 7000 строк


àU4A2
D'bÈaáLQæ&&tó¸«*C!Wþ1IÆ1íIjYe2îÀ*x7ó¨Þ9{m$dãiO$o;ß×Ò@C²<ß ñøÔ2y1äã QãVíÄl±äãuªb¸~¼ö&$r[ÈÈÉ'<ÒÆKLFJü¤Jl3(±ù8>Ýè)ÆÂçùPó>ä20+¸Çài$yT3!v¼KyþGÂ×QÄNxh×zgÐÕfùJ§iôætݺßåïNH8%Î$uýéÒO#|£=ê)ÎÕ¹õsRùOn¾i\îñôúÑp·¡=}ªs"Ë(ó
ôãÒ«ycmí¼G\ÒÄÌáÔý)$.ç9éùÓ¤o>Pb' .õïLv4ÏÁ=}hUdDªKnǺsLG ~$åÞ>PpÁÈôïUÑ÷wç·B*cªQr$zûR*" b:w¦>ÿz6zc¯çUÉÄéúõëVHáxÀÆ:wÿl;670' óôö¯ÿÙPKù°úNY;±Å«É1.jpgPKù°úNWó^PXÁ,ÅÔÅ2.jpgPKù°úNù®Ú^TÁ*ÅO3.jpgPKù°úNªþI¿ÃÆH4.jpgPKù°úN#{¼¾zÂ25.jpgPKù°úNoÄã+¾æÁÇ6.jpgPKù°úNÒú#½æÀ_7.jpgPKù°úN3Mð»Ó¾¥B8.jpgPKù°úNN°_R½ùÀãý9.jpgPKù°úN]§	»¾X»10.jpgPKù°úNEÏ6Ã;ºÍ½v11.jpgPKù°úNNDü涺ä012.jpgPKù°úN%!¬%G´Ê·îç13.jpgPKù°úNçÀB´é·Y	14.jpgPKù°úN\(̳i·¿P
15.jpgPKù°úNÐ^ù´¸¯16.jpgPKù°úNÉqèþ³·`¹17.jpgPKù°úNÙÃ*Ja´î·m18.jpgPKù°úNí3£*¼±Eµ"
19.jpgPKù°úN®Öii¯³çÓ
20.jpgPKù°úNAGû­0±t21.jpgPKù°úNþ¹Ö©¬C°0122.jpgPKù°úN¿ä[!¬¢¯ýÝ23.jpgPK£B


Как на сервере принять данный архив не имея filename?
Back на laravel, хотя в принципе не могу нагуглить решение и на чистом php =(
PS известно что в архиве N-ое количиество изображений.
PPS сам архив генерируется на фронте где-то так, но в XCode не силен, по этому подробней сообщить что-то врядли смогу
NSString *uuidString = [[NSUUID UUID] UUIDString];
NSString *filename = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@-homestead.zip", uuidString]];
OZZipFile *zipFile= [[OZZipFile alloc] initWithFileName:filename mode:OZZipFileModeCreate legacy32BitMode:YES];
  • Вопрос задан
  • 72 просмотра
Решения вопроса 2
DevMan
@DevMan
эмм.... а зачем вам его знать?
вы получили данные, сохраните их под любым удобным вам именем.
Ответ написан
@O_Nayre Автор вопроса
Вася DevMan
Спасибо, не с первой попытки, но вьехал!
Код
$rawData = file_get_contents("php://input");
file_put_contents('arch.zip', $rawData);

положил архив в корень публичной папки

UPD1:
менее ресурсоемкое решение предложил Кирилл Несмеянов
\stream_copy_to_stream(\fopen('php://input', 'rb'), \fopen(__DIR__ . '/arch.zip', 'rb+'));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы