我正在尝试编写一个允许用户上传文件夹的脚本。基本上,用户将指定一个文件夹,所有包含的文件都应上传,并在服务器上重建相对路径或文件夹结构。
html部分使用Java_wearablepc_ftcl_hit_edu_cn_fpga_MainActivity_readImage(
JNIEnv *env, jobject, jstring jstr) {
FILE *fp;
fp = fopen(jstringTostring(env, jstr), "rb");
if (fp != NULL) {
int length = getFileLength(fp);
Log_i("fp length");
if(length<=0) {
jbyteArray jarrRV = env->NewByteArray(1);
return jarrRV;
} else {
jbyteArray jarrRV = env->NewByteArray(length);
jbyte data[length];
readImage(fp, data, length);
fclose(fp);
env->SetByteArrayRegion(jarrRV, 0, length, data);
return jarrRV;
}
} else {
jbyteArray jarrRV = env->NewByteArray(1);
return jarrRV;
}
,
webkitdirectory
服务器是用Laravel编写的。我希望在Laravel中使用<form action="cmd/test" enctype="multipart/form-data" method="post">
<input id="upload" name="content[]" type="file" value="Input" directory webkitdirectory>
<input type="submit" value="submit">
</form>
,就像
Request
我尝试上传一个包含以下内容的测试文件夹:
Route::any('cmd/test', function(\Illuminate\Http\Request $request) {
echo $request;
$files = $request->file('content');
echo json_encode($files);
//Store the files here...
});
令我惊讶的是,测试脚本的输出是
dir /s test
Directory of C:\Users\███████\Desktop\test
18-Nov-18 05:19 PM <DIR> .
18-Nov-18 05:19 PM <DIR> ..
18-Nov-18 05:19 PM 1 note1.txt
18-Nov-18 05:19 PM 1 note2.txt
18-Nov-18 05:20 PM <DIR> test1
2 File(s) 2 bytes
Directory of C:\Users\███████\Desktop\test\test1
18-Nov-18 05:20 PM <DIR> .
18-Nov-18 05:20 PM <DIR> ..
18-Nov-18 05:20 PM 1 note3.txt
1 File(s) 1 bytes
Total Files Listed:
3 File(s) 3 bytes
无法使用 [{},{},{}]
检索有关文件名或内容的信息。 Edge或Firefox的结果相同。有什么建议吗?
编辑:根本不知道返回值的类型是Request::file()
,这对我来说是很不好的。获取文件的相对路径以重建文件夹结构的问题仍然存在。