package sugoi.form.elements; import sugoi.form.Form; import sys.io.File; /** * Manage an element for uploading images. */ class ImageUpload extends FormElement { public var fileName: String; public var maxSize : Int; // Max file size in Mb public var previewMaxSize : Int; // Image preview max size in pixels public var url : String; public var text : String; /** * @param name * @param label * @param url file URL for previewing the image * @param required */ public function new(name:String, label:String, ?url:String, ?required:Bool=false ) { super(); this.name = "upload_"+name; this.label = label; this.url = url; this.required = required; fileName = null; maxSize = 6; previewMaxSize = 200; } override public function getTypedValue(s:String):haxe.io.Bytes { var request = sugoi.tools.Utils.getMultipart(1024 * 1024 * maxSize); var strData = request.get(parentForm.name + "_" + name + "_data"); if (strData != null && strData != ""){ fileName = request.get(parentForm.name + "_" + name + "_data_filename"); return new haxe.io.StringInput(strData).readAll(); } return null; } public function hasDeleteAction():Bool{ var n = parentForm.name + "_" +name; return (App.current.params.get(n + "_delete") == "1"); } /** * Renders an input + image preview + delete btn */ override public function render():String { var n = parentForm.name + "_" +name; var str = new StringBuf(); str.add('
'); if (url!= null)str.add(''); str.add(''); if (text != null) str.add('

$text

'); if (!required && url!= null){ str.add(''); str.add(''); str.add(''); } str.add(''); str.add('
'); return str.toString(); } }