Exemplo n.º 1
0
 public function handleUpload(Request $request)
 {
     $this->validate($request, ["name" => "required|min:2|max:200", "uploadtype" => "required", "file" => "required_if:uploadtype,image|image|max:200", "pdecapture" => "required_if:uploadtype,code", "description" => "max:2000", "license" => "required|in:ccby4,unlicense"]);
     $submissionid = strtolower(str_random(5));
     while (Sprite::where("alphaid", "=", $submissionid)->exists()) {
         $submissionid = strtolower(str_random(5));
     }
     $path = public_path() . "/sprites/full/" . $submissionid . ".png";
     if ($request->input("uploadtype") == "image") {
         if ($request->file("file")->getSize() > 200 * 1000) {
             // 200kb
             return redirect()->back()->withErrors(["This file is too large."])->withInput();
         }
         Image::make($request->file("file")->getRealPath())->save($path);
     } else {
         $base64 = $request->input("pdecapture");
         Image::make($base64)->save($path);
     }
     if (Sprite::where("checkfile", "=", sha1_file($path))->exists()) {
         unlink($path);
         return redirect()->back()->withErrors(["This file is a duplicate."])->withInput();
     }
     $image = Image::make($path);
     $palette = new \BrianMcdo\ImagePalette\ImagePalette($path, 3);
     $colors = "";
     foreach ($palette as $color) {
         $colors .= $color . " ";
     }
     Sprite::create(["title" => $request->input("name"), "alphaid" => $submissionid, "description" => $request->input("description"), "license" => $request->input("license"), "username" => Auth::user()->alphaid, "width" => $image->width(), "height" => $image->height(), "filesize" => $image->filesize(), "checkfile" => sha1_file($path), "colors" => $colors]);
     if ($image->width() / $image->height() > 1.5) {
         $image->widen(30)->save(public_path() . "/sprites/small/" . $submissionid . ".png");
     } else {
         $image->widen(15)->save(public_path() . "/sprites/small/" . $submissionid . ".png");
     }
     return redirect("/sprite/" . $submissionid);
 }