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

如何在WebServer中设计文件上传表单,以及Curl如何使用它们发布文件?

华昕
2023-03-14

用例-我有一个包含两个文件的嵌入式框

>

  • 一个大文件包含调试日志,用户日志协助技术领域的问题。这个大文件基本上是100Mb左右的zip文件。

    另一个文件-包含配置的小文件-大约3 Kb。

    我的要求是将这些文件发布到Web服务器。

    技术-为了发布此文件,我使用libcurl。

    我对网络服务器的假设——这可能是一个包含文件输入类型的表单

    <form method="post" enctype="multipart/form-data">
     <div>
       <label for="file">Choose file to upload</label>
       <input type="file" id="file" name="Myfile" multiple>
     </div>
     <div>
       <button>Submit</button>
     </div>
    </form>
    

    此外,它可能正在运行节点服务器来处理POST请求

    问题

    1) 在这里,curl-F是发布此类文件的最佳选项,而不是curl-d或-d二进制选项吗?

    2) 通常,我们是否为每种文件类型提供单独的表格,例如技术字段文件和另一种配置文件表格?

    如果没有,那么要求用户输入输入文件标记名称是否是一个好主意,这样curl-F选项就可以准确地工作,而不管Webserver是如何设置的?基本上,根据示例-myFile可以是任何名称,所以要求用户传递这个名称是个好主意吗?文件标记名称-Myfile的简称或通俗名称是什么?这样我就可以要求用户输入这些信息。

  • 共有1个答案

    史昀
    2023-03-14

    认识到HTTP/HTTPS PUT方法是这里合适的解决方案。这样就不需要表单或强大的npm模块。这是PUT的curl页面-如何使用curl执行PUT请求?

    var ciphers = [
        'AES128-SHA',
        'AES256-SHA'
    ].join(':');
    
    
    var options = {
        key: fs.readFileSync('./key.pem'),
        cert: fs.readFileSync('./cert.pem'),
        ciphers: ciphers
    };
    
    https.createServer(options, function(req, res) 
    
        {
    
         if (req.method === 'PUT') 
           {
               // use file npm module to copy the file content here. 
                 // like fs.write
               req.on('data', function(data)
                {
                   // write data here ..       
                } 
            }
            });
    

    客户端-

    下面是测试它的命令行-

    curl -k -X PUT -F "myfile=@/test/Test.png" https://192.162.1.19/
    

    下面是测试它的libcurl代码。

    https://curl.haxx.se/libcurl/c/httpput.html

    记住使用-lcurl链接

    #gcc putCode.c -o putcode -lcurl 
    #./putCode /test/Music/joy.mp3 joyful.mp3
    
     类似资料:
    • 问题内容: 我想知道如何使用cURL或PHP中的任何其他文件上传文件。我在Google中搜索了很多次,但没有结果。 换句话说,用户看到表单上的文件上传按钮,该表单被发布到我的php脚本中,然后我的php脚本需要将其重新发布到另一个脚本(例如,在另一个服务器上)。 我有此代码来接收文件并上传 代码: 我希望代码将文件发送到接收者文件。 问题答案: 采用:

    • 问题内容: 当我使用以下命令将文件发布到烧瓶服务器时,使用原始HTML可以从烧瓶请求全局访问文件: 在烧瓶中: 当我尝试对Axios执行相同操作时,烧瓶请求全局为空: 如果我使用上面相同的uploadFile函数,但从axios.post方法中删除标头json,则会在flask请求对象的表单键中获得字符串值的csv列表(文件为.csv)。 如何获取通过axios发送的文件对象? 问题答案: 将文件

    • 使用raw HTML,当我将文件发布到flask服务器时,使用以下方法,我可以从flask请求全局访问文件: 烧瓶中: 如果我使用上面相同的uploadFile函数,但从Axios.Post方法中删除headers json,我将在flask请求对象的form键中获得一个字符串值的csv列表(文件是.csv)。 如何获得通过Axios发送的文件对象?

    • 我需要在导出的jar文件中包含一些图像文件,我搜索了一下,找到了这个和这个答案,但我不能让它工作。 我在用Maven

    • 我正在尝试使用多部分实体方法上传文件。但它失败,错误说{“错误”:“文件参数值'无'无效”} 我的代码是: File File = new File(" C:/Users/SST-06/Desktop/new . txt "); 我的实体文件包含所有提到的参数。 -hkYO-pblk 0 uqlxjtvklrbkosxz 7 mye-8 wbvbvanx Content-Disposition:f