当前位置: 首页 > 知识库问答 >
问题:

正在尝试上载文件,但请求未发送

陈博容
2023-03-14

我正在尝试使用file类型的输入上传文件,我还有另一个参数要提交

以下是我的表格代码:

<form  id="fileupload" action="uploadMassContentsFromExcelSheetNew"  method="post" 
  enctype="multipart/form-data" onsubmit="return doMassValidate();"  >          

      <input type="hidden" id="fileName" name="fileName" value=""/>
      <input type="hidden" id="serviceIdMass" name="serviceIdMass"   value=""/>
      <input type="hidden" id="contentTypeMass" name="contentTypeMass"   value=""/> 



     <div id='fileDiv' class="row fileupload-buttonbar">
        <div class="col-md-12 col-xs-12 col-lg-12">
        <div class="input-group input-group-file">
        <input type="text" class="form-control" 
                        disabled="disabled" id="uploadFile" name="uploadFile">
        <span class="input-group-btn">
             <span class="btn btn-primary btn-file">
        <i class="icon md-upload" aria-hidden="true"></i>
      <input type="file" name="files" id="uploadBtn">
          </span>
          </span>   
        <p style="word-wrap: break-word;">
            <small id="fileError" style="display: none;"
                            class="help-block" data-fv-validator="notEmpty"
                            data-fv-result="VALIDATED">
                <s:property value="getText('content.file.error')" />
            </small>
        </p>

        </div>
        </div>
     </div> 

            <button  name="sub" type="submit" >submit</button>

</form>

JS代码:

function doMassValidate(){
    var hasSelectedFile=checkIfHasSelectedFile();
    if(!hasSelectedFile){
        fileErrorMessage();
        $("#fileError").hide();

        return false;
    }
    else{
        removeErrorClass('fileDiv');
        return true;
    }
}
function checkIfHasSelectedFile(){
    var hasNotUploadFile=   $('#uploadBtn').val(); 
    if(hasNotUploadFile=="" || hasNotUploadFile=='' )
         return false;
     else return true;

}

这是我的行动:

public String uploadMassContentsFromExcelSheetNew() {
    HSSFSheet sheet = null;
    HSSFWorkbook workbook = null;
    FileInputStream inputStream = null;
    result=new JSONObject();

    try {
            if (fileName != null){
            fileName=fileName.trim();

        if  (fileName.endsWith(".xls") || fileName.endsWith(".xlsx") )  {

    HttpServletRequest request = ServletActionContext.getRequest();
                System.out.println("Parts*******:"+request.getParts()); //return   null


                MultiPartRequestWrapper multiWrapper=(MultiPartRequestWrapper)ServletActionContext.getRequest();
            String fileNameParam=servletRequest.getParameter("fileName");//i get the file name value
String fileParam=servletRequest.getParameter("files");// i cant get param with name "files" when i inspect the servletRequest

            Part filePart =request.getPart("files");//return null
            File[] f=multiWrapper.getFiles("files"); //return null
            String fileName=multiWrapper.getFileNames("files")[0];
            Enumeration fileParameterNames = multiWrapper.getParameterNames();
            String param = request.getParameter("files");
        }
            }
    }
    catch(Exception ex){
        ex.printStackTrace();
    }
}       

和IM使用fileUpload拦截器:

<interceptor-ref name="fileUpload"/>
<interceptor-ref name="basicStack"/>

这是请求:

------WebKitFormBoundaryjBpjIWpSdq4RzL0X
Content-Disposition: form-data; name="fileName"

C:\fakepath\SMSMassploadOladDate.xls
------WebKitFormBoundaryjBpjIWpSdq4RzL0X
Content-Disposition: form-data; name="serviceIdMass"

647
------WebKitFormBoundaryjBpjIWpSdq4RzL0X
Content-Disposition: form-data; name="contentTypeMass"

1

------WebKitFormBoundaryjBpjIWpSdq4RzL0X
Content-Disposition: form-data; name="files"; filename=""
Content-Type: application/octet-stream

文件内容类型不应该是“application/ms-excel,application/vnd.ms-excel”而不是application/octet-stream?文件名不应该是空的?

我真的不明白文件有什么问题?

共有1个答案

伯鸿达
2023-03-14

我已经用struts解决了这个问题。xml i只是扩展了“struts默认值”,它应该扩展为“struts默认值,json默认值”。另外,它与blueimp插件有关,我试图使用调用的“main.js”库使我的代码无法工作。

 类似资料:
  • 问题内容: 我查看了用于$ resource的AngularAPI,但没有找到将s发送到RESTful服务的方法。 我知道使用$http方法是可能的,所以,也可以使用吗? 显然,这是的选项。 动作 – {string} –动作的名称。该名称成为资源对象上方法的名称。 方法 – {string} – HTTP请求方法。有效方法为:GET,POST,PUT,DELETE和JSONP params –

  • 我查看了$resource的Angular API,但没有找到向RESTful服务发送的方法。 isArray-{boolean=}-如果为true,则此操作返回的对象为数组,请参见returns部分。 目前,我还没有找到发送包含JSON对象的请求负载的任何方法。

  • 我正在尝试将文件上传到 Azure Blob 存储,但在将文件推送到存储中时收到错误。 我使用java 11和Quarkus进行开发。在POM上,我添加了工件azure-storage-blob和azure-sdk-bom 法典: 恢复错误 io.net.cha.DefaultChannelPipeline] (vert.x-eventloop-thread-2) 一个 exceptionCaug

  • 我是一个使用angular的新手,我正在努力学习一点,但我不能使用令牌进行简单的获取。我做了很多研究,最后总是得到这段代码。 对于我的后端,我使用Kotlin/Springboot并配置了Cors。 即使如此,当尝试这样做请求我得到这个错误。 访问位于“”的XMLHttpRequesthttp://localhost:5000/api-v1/来源的帐户/列表 -- 果心js:15713错误Http

  • 我制作了一个简单的JavaScript页面,当按下“发送”按钮时,该页面应该显示时间表并通过HTTP发送数据。 数据应该发送到一个Arduino使用这个简单的方案: http://arduinoip/DATASTARTSHEREhh:mm;hh:mm;hh:mm;[...];DATAENDSHERE 我使用以下代码打印我在Arduino串行监视器中收到的所有数据: 我收到的数据如下: 新客户 CM

  • 我正在尝试将图像作为广告中的字符串字段上传,但当将文件添加到正文时,我遇到了这个错误:“异常”:“org.springframework.web.multipart.support.MissingServletRequest estPartException”,“消息”:“所需的请求部分'file'不存在”。我在这里寻找有关此问题的答案,但没有任何帮助。我将很高兴得到任何帮助。 我的控制器: 我的