2015-03-25 14 views
6

Flysystem kullanarak Rackspace'da bir sitenin dosyalarını saklıyorum. Yükleme bir dosya için bir indirme başlatmak için nasıl sergiyi sorun yaşıyorsanız, sorun yok - bu sonucun dosyası bulunamadı olmasıdırLaravel 5 Flysystem - uzak diskten indirme dosyası

Storage::disk('rackspace'); 
return response()->download('file-library/' . $file->filename); 

denedim budur. Laravel'i yerel olarak değil bu konumda görüntülemek için Storage::disk() eklenmesi yeterli mi? Bunu başarmanın en iyi yolu nedir?

cevap

-3

Laravel'i yerel olarak değil de bu konumda görmek için Storage::disk() eklenmesi yeterli midir?

Hayır, bu response()->download() çağrılarını etkilemez. Böyle

şey çalışmalıdır:

return response()->download(Storage::disk('rackspace')->get('file-library/' . $file->filename)); 
+0

'is_file() 1 parametresinin geçerli bir yol, verilen dizge olmasını' bekliyor. Download'un ilk parametresi bir yol (dize) – NightMICU

+0

@NightMICU Bu dosyayı geçici bir dosyaya indirmeniz gerekebilir sanırım. Ya da sadece kullanıcıyı doğrudan Rackspace'ın deposuna bağlayın. – ceejayoz

+0

@ceeyaoz, bunun hakkında düşünmezlerdi garip görünüyor. Geçici dosyalar ile uğraşmaktan kaçınmak isterim (bu türdeki tüm dosyaları yerel dosya sistemimden uzak tutmaktı) ve kullanıcı mevcut sayfayı terk etmeden bir indirme başlatmayı umuyordu. – NightMICU

18

Burada Frank Flysystem dan.

Bunu yapmanın tercih edilen yolu readStream çıkışını Response :: stream ile birlikte kullanmak olacaktır.

<?php 

$fs = Storage::disk('diskname')->getDriver(); 
$stream = $fs->readStream($file); 

return Response::stream(function() use($stream) { 
    fpassthru($stream); 
}, 200, [ 
    "Content-Type" => $fs->getMimetype($file), 
    "Content-Length" => $fs->getSize($file), 
    "Content-disposition" => "attachment; filename=\"" . basename($file) . "\"", 
]); 

$fsLeague\Flysystem\Filesystem örneğidir. Laravel'in sağladığı dosya sistemi sınıfında bu örneği almak için bir yöntem olduğuna inanıyorum.

+0

Merhaba Frank, bunun için teşekkürler - Laravel'de çalıştığı bilinen bir örnekle güncellemek mümkün olabilir mi? Dosya sistemi örneğiyle Laravel – NightMICU

+0

ile ilgili olarak büyük bir kayıpım, ilk satırda ekledim. –

+0

Bunun Lümen'de çalıştığını doğrulayabilirim, Laravel'in neden bu kadar bir neden görmediğini görüyoruz. 5 –