Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在spring surf java webscript中将文件上载到本地文件夹?_Java_Alfresco_Surf_Alfresco Share_Spring Surf - Fatal编程技术网

如何在spring surf java webscript中将文件上载到本地文件夹?

如何在spring surf java webscript中将文件上载到本地文件夹?,java,alfresco,surf,alfresco-share,spring-surf,Java,Alfresco,Surf,Alfresco Share,Spring Surf,我正在上传一个文件。我想获取文件并保存到本地系统。为此,我使用java中的spring surf webscripts。谁能告诉我怎样才能得到我的文件吗 这是我的ftl文件: <form name="frmUpload" id="frmUpload"action="${url.context}/upload" enctype="multipart/form-data" method="get"> <input type="file" size="40" id="toBe

我正在上传一个文件。我想获取文件并保存到本地系统。为此,我使用java中的spring surf webscripts。谁能告诉我怎样才能得到我的文件吗

这是我的ftl文件:

<form name="frmUpload" id="frmUpload"action="${url.context}/upload"     enctype="multipart/form-data" method="get">
<input type="file" size="40" id="toBeUploaded" name="toBeUploaded" tabindex="2" onchange = "document.getElementById('frmUpload').submit()"required />
</form>
文件名正在正确提交,但正在抛出FileNotFoundException。这是stacktrace

java.io.FileNotFoundException: Source 'test.jar' does not exist
        at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:637)
        at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:607)

要获取上传的表单,您需要通过对象。您的代码将类似于:

    // Get our multipart form
    final ResourceBundle rb = getResources();
    final FormData form = (FormData)req.parseContent();
    if (form == null || !form.getIsMultiPart())
    {
        throw new ResourceBundleWebScriptException(Status.STATUS_BAD_REQUEST, rb, ERROR_BAD_FORM);
    }

    // Find the File Upload file, and process the contents
    boolean processed = false;
    for (FormData.FormField field : form.getFields())
    {
        if (field.getIsFile())
        {
            // Logic to process/save the file data here
            processUpload(
                    field.getInputStream(),
                    field.getFilename());
            processed = true;
            break;
        }
    }

    // Object if we didn't get a file
    if (!processed)
    {
        throw new ResourceBundleWebScriptException(Status.STATUS_BAD_REQUEST, rb, ERROR_NO_FILE);
    }

如果您确定上传的字段名,您可以短路其中的一些逻辑位来获取上传的表单,您需要通过对象。您的代码将类似于:

    // Get our multipart form
    final ResourceBundle rb = getResources();
    final FormData form = (FormData)req.parseContent();
    if (form == null || !form.getIsMultiPart())
    {
        throw new ResourceBundleWebScriptException(Status.STATUS_BAD_REQUEST, rb, ERROR_BAD_FORM);
    }

    // Find the File Upload file, and process the contents
    boolean processed = false;
    for (FormData.FormField field : form.getFields())
    {
        if (field.getIsFile())
        {
            // Logic to process/save the file data here
            processUpload(
                    field.getInputStream(),
                    field.getFilename());
            processed = true;
            break;
        }
    }

    // Object if we didn't get a file
    if (!processed)
    {
        throw new ResourceBundleWebScriptException(Status.STATUS_BAD_REQUEST, rb, ERROR_NO_FILE);
    }

如果您确定上传的字段名,您可以将其中一些逻辑位短路

,谢谢gagravarr。你能告诉我这个processUpload方法是什么吗?form.getIsMultiPart()是假的。我已经在表单中声明了enctype=“multipart/form data”。我已经在配置文件中将这个webscript配置为bean。对于多部分表单,bean定义是否需要更多的配置,如属性等?
processUpload
是处理文件的逻辑所在!您只需发送带有结构的表单,使用firebird或wireshark之类的工具检查您发送的内容是否正确,好吧,但我无法获取我的文件。我搜索了很多。有人说这是java中冲浪脚本中的一个bug。请你能帮我吗?Alfresco至少有一些这样做的例子,这就是我答案中的代码主要取自的地方!我只能建议您尝试将代码和webscript与AlfrescoThanks gagravarr中的工作代码和webscript进行比较。你能告诉我这个processUpload方法是什么吗?form.getIsMultiPart()是假的。我已经在表单中声明了enctype=“multipart/form data”。我已经在配置文件中将这个webscript配置为bean。对于多部分表单,bean定义是否需要更多的配置,如属性等?
processUpload
是处理文件的逻辑所在!您只需发送带有结构的表单,使用firebird或wireshark之类的工具检查您发送的内容是否正确,好吧,但我无法获取我的文件。我搜索了很多。有人说这是java中冲浪脚本中的一个bug。请你能帮我吗?Alfresco至少有一些这样做的例子,这就是我答案中的代码主要取自的地方!我只能建议您尝试将代码和webscript与Alfresco中的工作代码和webscript进行比较