2015-07-26 2 views
1

Comment puis-je arrêter l'écriture de fichier (télécharger l'URL distante du formulaire) lorsque la taille du fichier dépasse 500 Ko?Arrêter l'écriture du fichier si la taille du fichier dépasse 500 Ko rubis sur les rails

J'utilise le code ci-dessous pour télécharger un fichier distant

require 'open-uri' 
open('temp/demo.doc', 'wb') do |file| 
    file << open('http://example.com/demo.doc').read 
end 

ce code fonctionne correctement et je suis en mesure d'obtenir des fichiers dans le dossier temp. Maintenant, je veux si la taille du fichier dépasse 500 Ko alors il devrait arrêter d'écrire le fichier. Autrement dit, je ne veux que 500Ko de fichier s'il est plus que

500KB

Répondre

2

IO#read, prend un argument octets, de sorte que vous pouvez spécifier la taille de ce que vous voulez lire IO comme ci-dessous:

require 'open-uri' 
open('temp/demo.doc', 'wb') do |file| 
    file << open('http://example.com/demo.doc').read(500000) 
end 

vous pouvez également jouer avec des choses comme file.stat.size mais étant donné que vous êtes en train de diriger directement vers le fichier, vous devrez faire plus de choses pour que cela fonctionne.