Subversion Repositories bacoAlunos

Rev

Rev 1585 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.web.controllers.examples.jsonwidget;

import org.apache.struts.action.ActionForm;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController;
import pt.estgp.estgweb.web.controllers.utils.FileUploaded;
import pt.estgp.estgweb.web.controllers.utils.FilesUploadResult;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;

/**
 * Created by jorgemachado on 27/12/16.
 */

public class WidgetFileUploadExampleController extends AbstractWidgetAjaxController
{

    /**
     * Example of simple service returning true if every thing gos right
     * @param form
     * @param request
     * @param response
     * @return
     * @throws IOException
     */

    public 1.5.0/docs/api/java/lang/Boolean.html">Boolean uploadFilesSimple(ActionForm form,
                               HttpServletRequest request,
                               HttpServletResponse response) throws 1.5.0/docs/api/java/io/IOException.html">IOException
    {
        JsonWidgetFileUploadExampleForm filesUploadForm = (JsonWidgetFileUploadExampleForm) form;
        FilesUploadResult result  = filesUploadForm.getFilesUploadResult();
        for(FileUploaded f: result.getUploadedFiles())
        {
            1.5.0/docs/api/java/io/File.html">File tmpFile = new 1.5.0/docs/api/java/io/File.html">File(Globals.TMP_DIR + 1.5.0/docs/api/java/io/File.html">File.separator + f.getTmpName());
            if(tmpFile.exists())
            {
                1.5.0/docs/api/java/lang/System.html">System.out.println( f.getFileName() + " in tmp : " + f.getTmpName() + " has size " + tmpFile.length());
                addMessageAsString(request,"Ficheiro " + f.getFileName() + " importado com sucesso");
            }
            else
            {
                1.5.0/docs/api/java/lang/System.html">System.out.println("FAIL: file is not in tmp: " + f.getFileName() + " in tmp : " + f.getTmpName());
                addErrorAsString(request, "Ficheiro " + f.getFileName() + " falhou a importação");
                return false;
            }
        }
        return true;
    }

    /**
     * Example of service with feedback
     * @param form
     * @param request
     * @param response
     * @return
     * @throws IOException
     * @throws JSONException
     */

    public JSONObject uploadFilesFeedback(ActionForm form,
                               HttpServletRequest request,
                               HttpServletResponse response) throws 1.5.0/docs/api/java/io/IOException.html">IOException, JSONException {
        JsonWidgetFileUploadExampleForm filesUploadForm = (JsonWidgetFileUploadExampleForm) form;
        FilesUploadResult result  = filesUploadForm.getFilesUploadResult();

        JSONObject returnResult = new JSONObject();
        JSONArray readedFilesFeedback = new JSONArray();
        returnResult.put("readedFilesFeedback",readedFilesFeedback);

        //Vamos usar este array para colocar os novos
        JSONArray persistentNewFiles = new JSONArray();
        returnResult.put("persistentNewFiles",persistentNewFiles);
        for(FileUploaded f: result.getUploadedFiles())
        {
            1.5.0/docs/api/java/io/File.html">File tmpFile = new 1.5.0/docs/api/java/io/File.html">File(Globals.TMP_DIR + 1.5.0/docs/api/java/io/File.html">File.separator + f.getTmpName());
            tmpFile.length();
            JSONObject readedFile = new JSONObject();
            readedFilesFeedback.put(readedFile);
            readedFile.put("fileName",f.getFileName());
            readedFile.put("tmpName",f.getTmpName());
            readedFile.put("arriveSize","" + (tmpFile.length()/1024));
            readedFile.put("title","" + f.getTitle());
            readedFile.put("description","" + f.getDescription());
            if(tmpFile.exists())
            {
                readedFile.put("upload","ok");
                addMessageAsString(request,"Ficheiro " + f.getFileName() + " importado com sucesso");
            }
            else
            {
                readedFile.put("upload","fail");
                addErrorAsString(request, "Ficheiro " + f.getFileName() + " falhou a importação");
            }
            f.setTmpName(null);
            f.setRepositoryStream("999999");
            persistentNewFiles.put(FileUploaded.serializeJson(f));

        }
        return returnResult;
    }

}