package sugoi.form.elements; import haxe.crypto.Md5; import haxe.Timer; import sugoi.form.Form; import sys.io.File; /** * Manage an element. */ class FileUpload extends FormElement { public var fileName: String; public var maxSize : Int; //Max file size in Mb public function new(name:String, label:String, ?value:haxe.io.Bytes, ?required:Bool=false, toFolder:String=null, ?keepFullFileName:Bool=true ) { super(); this.name = name; this.label = label; this.value = value; this.required = required; fileName = null; maxSize = 6; } override public function getTypedValue(s:String):haxe.io.Bytes { var request = sugoi.tools.Utils.getMultipart(1024 * 1024 * maxSize); //trace(request.toString()); var strData = request.get(parentForm.name + "_" + name); fileName = request.get(parentForm.name + "_" + name+"_filename"); return new haxe.io.StringInput(strData).readAll(); } override public function render():String { var n = parentForm.name + "_" +name; //var path = toFolder.substr((Sys.getCwd() + "tmp/").length); //var path = toFolder; var str:String = ""; //str += ''+getOriginalFileName()+'
'; str += ''; //if (!required && value != '' && value != null) str += '[ remove ]'; //str += ''; //str += ''; return str; } /** * Contains MD5 and original filename. */ //public function getFileName() //{ //if (keepFullFileName) //{ //var s = Std.string(value); //return s.substr(s.lastIndexOf("/") + 1); //} else { //return value; //} //} /** * Orginal filename. */ //public function getOriginalFileName() //{ //if (keepFullFileName) //{ //var s = Std.string(value); //return s.substr(s.lastIndexOf("/") + 33); //} else { //return Std.string(value).substr(33); //} //} }