0

这是我的示例 HTML 代码

<html>
        <head>
            <title>
                fileupload
            </title>
        </head>
        <body>
            <form action="process.jag" method="post" id="" name="">
                  <!-- File input filed -->
                  <input type="file" name="myFile">

                  <!-- The submit button. It calls the server side function uploadfiles() on click -->
                  <input type="submit" id="" value="Upload File">

            </form>
        </body>
    </html>

这是我的粗略代码

<%
    var verb=request.getMethod();
    if (verb=='POST'){

        var log = new Log();
        var file = request.getFile("myFile");
        file.move("C:\Users\vatsal ramesh gosar\Desktop\New folder\form\fileUploadUsingJaggery"+file.getName());

        response.sendRedirect("https://www.google.com");

    }

%>

它给出了一个空指针异常。请用有效的代码帮助我解决这个问题。

4

2 回答 2

1

request.getFile("myFile")不代表物理文件,而是代表上传文件的流。因此,您不能使用file.move("/moving/path")函数“移动”它。如果要保存上传的文件,请使用以下代码段。

var uploadedFile = request.getFile("myFile");
var savedFile = new File("/path/to/save/location/" + uploadedFile.getName());
savedFile.open('w');
savedFile.write(uploadedFile.getStream());
savedFile.close();
于 2015-09-18T17:02:39.473 回答
0

在 Jaggery文档中,我没有找到任何将图像上传到服务器的方法。但是那里有一些替代品......

您将图像编码为base64编码,您也可以使用这种方式在base64上编码图像

$path = 'myfolder/myimage.png';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);

然后使用 Jaggery 使用POST请求发送编码的字符串。

于 2015-09-10T09:09:27.007 回答