C# SharePoint Online 错误:远程服务器返回错误:(403) FORBIDDEN
我想通过单点登录将 SharePoint Online 与 .NET 上的当前用户连接。我不想在我的代码中指定用户名和密码。不幸的是,我收到以下错误消息...
String sAux=getResources().getString(R.string.ShareText); sAux+=” ”; sAux+="https://play.google.com/store/apps/details?id="; sAux+=getPackageName(); sAux+=” ”; ...
.NET Core 7:Store 未实现 IUserRoleStore<TUser>
我在尝试向用户添加角色时遇到以下错误: Store 不实现 IUserRoleStore。 我该如何解决这个错误? 我正在使用.NET 7。 公共静态异步任务 SeedUser...
我在提交到 App Store 时遇到问题。当我尝试导出 .ipa 或在应用程序存档后使用提交功能时,Xcode 6.1 和 5.1.1 都会崩溃。以下是步骤
我需要像这个网站一样计算校验和 https://www.scadacore.com/tools/programming-calculators/online-checksum-calculator/ 对于十六进制 313233343536373839 站点计算 DD 用我的函数我得到168,如何
在 SharePoint Online、SharePoint 管理中心的 API 访问下,有一个部分用于批准对外部资源的访问,可以在 SPFx 项目的配置中指定该访问...
Excel Online / ExcelScript 错误:范围 getColumn:超时,如何增加超时或改进我的代码?
我有一个代码可以遍历“hello”表并删除列顶部包含单词 B 的所有列: 函数主(工作簿:ExcelScript.Workbook){ 让我们...
使用HttpClient将文件发送到SharePoint 365驱动器
我有一个 C# 控制台应用程序,我正在尝试将文件上传到位于 SharePoint Online 的驱动器中。下面是我现在的代码。 var httpClient = new HttpClient(); var 响应 = http...
来源/joetest 来源/JoeTest 我有一个问题,我在 git 中有两个远程分支,它们名称相同,大小写不同。 我不知道在 Visual Studio Online 中要做什么,我可以看到
我正在尝试通过JavaScript API在Excel中开发自定义函数。环境是Mac OS和Excel Online (Chrome)。 我按照教程并通过 npx office-addin-dev-certs 安装证书
如何使用 OAuth 2.0 客户端凭证流和带有 .net core 的 JWT 证书连接到 Oracle Netsuite
我正在尝试使用 Netsuite Rest api。以下是我采取的步骤。 https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_162730264820.html 在 Netsui 中创建了集成记录...
我正在尝试在线Excel中制作一个脚本。 我需要将日期粘贴到 F1 中,例如 13/2/2023,然后 G1 应该是 31/12/2023,所以同一日期的最后一年。 日期应取自 ce...
Dynamics CRM Online 2016 - 汇总字段在自定义实体中无法准确计算
Dynamics CRM 2016 在线。 似乎汇总字段计算不准确(请参见图片)。 我有 2 个自定义实体 - 菜单、食谱,它们具有 1:N 关系 我是不是错过了什么……
使用 microsoft graph api rest 设置共享点驱动器项目的查找字段值
在 Sharepoint online 上,我有一个包含文件的文档库和一个包含一些元数据的列表,我想将其链接到文件。由于您无法使用文档库项目的查找字段,但...
我想要一个 iTunes 中使用的国家/地区及其相应代码的列表,以便我可以在 iTunes API 中查询它们。 谢谢
可能很蠢,但与其被问到,不如后悔一辈子。 std::atomic::load 和 std::atomic::store 的标准模式是 像这样的东西 注意:假设在所有前...
我有一个简单的示例项目,其中“Store”有一些 Int 16 类型的属性“苹果”、“橙子”、“菠萝”。我正在尝试进行自定义
在store中action的payload中,我使用File类型存储下载的文件,然后该文件将在saga中通过验证 const form = new FormData(); if (私钥 &&
Micronaut Key Store Path中可以设置S3路径吗?
我有一个使用 Micronaut 3.9.x(从 Micronaut 1 迁移)的 lambda 应用程序,它使用 HttpClient 并具有指向我的资源文件夹内的证书的 SSL 配置。我有
Fastlane 框架交付到 App store 时不支持屏幕尺寸
使用 Swift5、iOS-12.2、Xcode-10.2(10E125) 并使用 GitLab CI 运行所有内容, 在应用程序发布步骤(使用 Fastlane 的交付)期间,屏幕截图屏幕尺寸似乎存在问题。
我正在开发一个使用 Angular 15 的 Excel 插件,在 Angular 应用程序中,我刚刚添加了 @ngrx/store。我也将开发工具添加到了模块中。我注意到 Excel 使用 Edge 来运行该加载项。
我可能有更多初学者的问题,但我无法进一步。我已经编写了我的第一个应用程序,它现在位于 Apple App Store 中。耶。该应用程序是德语的,但应用程序商店...
unity 2023+ 的“selectedSizeIndex”是什么(用于更改编辑器查看器大小)
我一直在使用 https://github.com/aktsk/screenshot-for-app-store/ 在 Unity 中的游戏中截取屏幕截图,但是,我更新到 Unity 2023(测试版),这并不能长久工作。 我怀疑这个变量...
如何将Visual Studio Code中flutter应用程序的包名从com.example.XXX更改为受Play Store限制的
使用 Visual Studio Code 创建 flutter 应用程序并尝试通过 Google Play 商店控制台将其上传到 Google Play 商店时,我收到以下错误: “使用”com.ex...
我刚刚上传了我的第一个应用程序,产品页面显示成功,但屏幕截图没有出现在搜索中,导致用户很难找到我的应用程序。 有谁知道如何修复...
新版Sdk(Android 14)如何不流失超过90%的Android应用用户?
我想将我的应用程序包上传到App Store,但Android版本不够(必须至少14); 我将我的应用程序更新 SDK 从 33 更新为 34 并保留 minSdkVersion 21 - 结果是 e...
使用包装器时从非功能组件调用 React-Redux Dispatch 函数
我确实有一个react redux store,它包装在next-redux-wrapper中。我想在 React 组件之外调度一个函数,但由于包装器的原因我无法这样做。有没有办法让我...
如何在 macOS 中禁用侧边栏最小化?在 App Store、音乐、提醒、邮件、消息等应用程序中,此功能被禁用。在像反馈助手这样的应用程序中,存在一个严重错误 - 在最小化之后...
Vue3 的 onMounted 钩子中带有异步的 Pinia 方法未同步执行 - 我错过了什么?
我在 onMounted 钩子中使用了 async 和 pinia 方法,不会同步执行代码。 当我尝试查看 {{ store }} 时,它不显示任何内容。请让我知道出了什么问题。比...
保存 History = model.fit() 变量,以便在我启动新的 VS Code Jupyter 会话时再次使用它。 Dill 和 %store 不起作用
所以我正在使用张量流进行迁移学习,我希望能够运行 History = model.fit(...) # 使用 base_model.trainable = False 运行初始训练 第一次训练完成后,我可以
iOS 中有没有一种方法可以以编程方式检查当前运行的应用程序是否是从 iOS App Store 安装的?这与通过 Xcode、TestFlight 或任何非官方运行的应用程序形成对比......
在 Sveltekit/Typescript 中使用 pdfjs
我需要在 sveltekit 4 typescript 项目中使用 pdfjs (当前 4.1.392)进行文本提取。这就是我尝试将 pdfjs 导入到我的 src/routes/+page.svelte 中的方法: ...</desc> <question vote="0"> <p>我需要在 sveltekit 4 typescript 项目中使用 pdfjs(当前版本 4.1.392)进行文本提取。这就是我尝试将 pdfjs 导入到我的 src/routes/+page.svelte 中的方法:</p> <pre><code><script lang="ts"> import * as pdfjs from 'pdfjs-dist/build/pdf'; import pdfjsWorker from 'pdfjs-dist/build/pdf.worker'; pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker; </script> </code></pre> <p>但是,我收到错误消息“无效的'workerSrc'类型”。</p> <p>如何在 sveltekit/typescript 中使用 pdfjs?</p> </question> <answer tick="false" vote="0"> <p>你可以尝试做这样的事情:</p> <pre><code>import * as pdfjs from "pdfjs-dist"; pdfjs.GlobalWorkerOptions.workerSrc = new URL("pdfjs-dist/build/pdf.worker.mjs", import.meta.url); </code></pre> <p>更多使用示例,可以访问PDF.js Github仓库: <a href="https://github.com/mozilla/pdf.js#online-demo" rel="nofollow noreferrer">https://github.com/mozilla/pdf.js#online-demo</a></p> </answer> <answer tick="true" vote="0"> <p>以下代码适用于 pdfjs-dist 4.2.67、svelte 4.2.15 和 typescript 5.4.5:</p> <pre><code><script lang="ts"> // @ts-nocheck import * as pdfjs from 'pdfjs-dist'; import * as pdfWorker from 'pdfjs-dist/build/pdf.worker.mjs'; pdfjs.GlobalWorkerOptions.workerSrc = import.meta.url + 'pdfjs-dist/build/pdf.worker.mjs'; </script> </code></pre> </answer> </body></html>
错误 org.apache.pig.tools.grunt.Grunt - 错误 1200:<line 16, column 46> 不匹配的输入“,”期望 LEFT_PAREN
grunt>joined_data=JOINfiltered_featuresBY(商店,日期),销售额BY(商店,日期); 2024-04-02 13:19:05,110 [主要] 错误 org.apache.pig.tools.grunt.Grunt - 错误 1200: grunt> joined_data = JOIN filtered_features BY (store, date), sales BY (store, date); 2024-04-02 13:19:05,110 [主要] 错误 org.apache.pig.tools.grunt.Grunt - 错误 1200: 不匹配的输入 ',' 期待 LEFT_PAREN 日志文件详细信息:/home/vboxuser/Documents/DDPC/EX9/q2/2/pig_1712044037517.log 猪堆栈跟踪 错误 1200:输入“,”不匹配,需要 LEFT_PAREN 解析失败:输入“,”不匹配,需要 LEFT_PAREN at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:244) at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:182) at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1792) at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1765) at org.apache.pig.PigServer.registerQuery(PigServer.java:708) at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:1110) at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:512) at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:230) at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:205) at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:66) at org.apache.pig.Main.run(Main.java:564) at org.apache.pig.Main.main(Main.java:175) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.hadoop.util.RunJar.run(RunJar.java:244) at org.apache.hadoop.util.RunJar.main(RunJar.java:158) ====================================================== ================================= 有括号但还是错误Left Paran 如果我提到列号,它就会起作用 grunt> join_data = JOIN Filtered_features BY ($0, $2), sales BY ($0, $1);
为什么 svelte 派生存储总是在 get() 上重新创建?
现在我想这更针对 Svelte 作者,但我最近才完全意识到派生商店是在获取时不断重新创建的。 例子 导入{导出、获取、写入...</desc> <question vote="0"> <p>现在我想这更针对 Svelte 作者,但我最近才完全意识到派生商店会在 <pre><code>get</code></pre> 上不断重新创建。</p> <p><a href="https://svelte.dev/repl/142e6716b65647f69f660613b39d0386?version=4.2.12" rel="nofollow noreferrer">示例</a></p> <pre><code><script> import { derived, get, writable } from 'svelte/store' const store = writable(0) const derivedA = derived(store, s => { console.log('derivedA recreated!') return { name: 'A', s } }) const derivedB = derived(derivedA, d => { console.log('derivedB recreated!') return { name: 'B', s: d.s } }) function getB() { console.log(get(derivedB)) } </script> <section class="mx-4 md:mx-0"> <button on:click={getB}>GetB</button> </section> </code></pre> <p>我认为它们只会在输入发生变化时才会重新创建 - 而不是每次调用 <pre><code>get</code></pre> 时都会重新创建。特别奇怪的是,如果派生存储被链接,则整个树都会被遍历。我假设 <pre><code>get</code></pre> 返回了对值的引用,当然,如果你那么愚蠢,你可能会变异并导致各种错误。</p> <p>我确实知道派生存储应该始终为相同的输入返回完全相同的值,但是如果<em>某人</em>没有时间深入思考它,则依赖于派生存储仅在原始存储更改时重新计算它会导致相当奇怪的错误。</p> </question> <answer tick="true" vote="1"> <p>来自文档</p> <blockquote> <p>从一个或多个其他商店派生出一个商店。 <strong>回调最初在第一个订阅者订阅时运行</strong>,然后每当存储依赖项发生变化时运行。</p> </blockquote> <blockquote> <p>...您可能需要检索您未订阅的商店的值。 <strong>get</strong> 允许您这样做。 <strong>这可以通过创建订阅</strong>、读取值,然后取消订阅来实现。</p> </blockquote> <p>在您的示例中,派生值未在任何地方使用,因此调用 <pre><code>get</code></pre> 创建第一个订阅者。添加时</p> <pre><code>{$derivedA} {$derivedB} </code></pre> <p>日志将在组件初始化时运行,而在调用 <pre><code>get</code></pre></p> 时不再运行 </answer> </body></html>
QWebEngineView:html 文件中的 href 不起作用
我有一个 test.html 文件,例如: 我有一个 test.html 文件,例如: <!DOCTYPE html> <html> <head> </head> <body> <a style="padding-right:5px" target="_blank" href="data/">Datadir</a> </body> </html> 包含 test.html 的目录如下: test.html data\ a.txt b.txt 我使用“file:///remote/us01home19/ktc/public_html/testLocalHref/test.html”并在firefox和chrome中单击Datadir,结果如下: 和: 我写了一个pyside2代码来做同样的事情,代码如下: from PySide2 import QtCore, QtWidgets, QtWebEngineWidgets import os import sys class CustomWebEnginePage(QtWebEngineWidgets.QWebEnginePage): # Store second window. external_window = None def acceptNavigationRequest(self, url, _type, isMainFrame): print(url, _type, isMainFrame) if _type == QtWebEngineWidgets.QWebEnginePage.NavigationTypeLinkClicked: if not self.external_window: self.external_window = QtWebEngineWidgets.QWebEngineView() self.external_window.setUrl(url) self.external_window.show() return False return super().acceptNavigationRequest(url, _type, isMainFrame) class MainWindow(QtWidgets.QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.browser = QtWebEngineWidgets.QWebEngineView() self.browser.setPage(CustomWebEnginePage(self)) # self.browser.setUrl(QtCore.QUrl("https://code.visualstudio.com")) self.browser.setUrl(QtCore.QUrl("file:///remote/us01home19/ktc/public_html/testLocalHref/test.html")) # self.browser.setUrl(QtCore.QUrl("file:///remote/tw_rnd1/ktc/prog/python/pyside2/WebEngine/data/aaa.ava.summary.html")) #self.browser.setUrl(QtCore.QUrl("file:///remote/tw_rnd1/ktc/prog/python/pyside2/WebEngine/data/aaa_ava_corners/C_1")) self.setCentralWidget(self.browser) if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) 但是执行代码,我得到的结果如下: 但是点击Datadir,没有任何反应,甚至QWebEnginePage.acceptNavigationRequest也没有触发。有没有办法让 QWebEngine 的行为像 Firefox 和 Chrome 一样? 我尝试在 QWebEnginePage.acceptNavigationRequest 函数中添加打印消息来捕获点击 dataDir 信息,但似乎没有任何响应。 python版本:python-3.9.0, 操作系统版本:“CentOS Linux 7”, Qt 版本:“Qt_5.15” python 和 Qt 是自定义构建 我发现问题来自htmltarget =“_blank”在QWebEnginePage中不起作用,它可以通过在QtWebEngineWidgets中实现类函数createWindow来避免,例如: class CustomWebEnginePage(QtWebEngineWidgets.QWebEnginePage): # Store second window. external_window = None def acceptNavigationRequest(self, url, _type, isMainFrame): print(url, _type, isMainFrame) if _type == QtWebEngineWidgets.QWebEnginePage.NavigationTypeLinkClicked: if not self.external_window: self.external_window = QtWebEngineWidgets.QWebEngineView() self.external_window.setUrl(url) self.external_window.show() return False return super().acceptNavigationRequest(url, _type, isMainFrame) def createWindow(self, t): return self;enter code here
Laravel POST 方法返回状态:405 不允许在 POST 方法上使用方法
请查找以下信息: NoteController.php 请查找以下信息: NoteController.php <?php namespace App\Http\Controllers; use App\Http\Requests\NoteRequest; use App\Models\Note; use Illuminate\Http\JsonResponse; class NoteController extends Controller { public function index():JsonResponse { $notes = Note::all(); return response()->json($notes, 200); } public function store(NoteRequest $request):JsonResponse { $note = Note::create( $request->all() ); return response()->json([ 'success' => true, 'data' => $note ], 201); } public function show($id):JsonResponse { $note = Note::find($id); return response()->json($note, 200); } public function update(NoteRequest $request, $id):JsonResponse { $note = Note::find($id); $note->update($request->all()); return response()->json([ 'success' => true, 'data' => $note, ], 200); } public function destroy($id):JsonResponse { Note::find($id)->delete(); return response()->json([ 'success' => true ], 200); } } NoteRequest.php <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class NoteRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'title', 'required|max:255|min:3', 'content', 'nullable|max:255|min:10', ]; } } Note.php(模型) <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Note extends Model { use HasFactory; protected $guarded = []; } api.php <?php use App\Http\Controllers\NoteController; use Illuminate\Support\Facades\Route; Route::prefix('v1')->group(function () { Route::resource('/note', NoteController::class); }); php artisan 路线:列表 GET|HEAD / ...................................................................................................................... POST _ignition/execute-solution ............... ignition.executeSolution › Spatie\LaravelIgnition › ExecuteSolutionController GET|HEAD _ignition/health-check ........................... ignition.healthCheck › Spatie\LaravelIgnition › HealthCheckController POST _ignition/update-config ........................ ignition.updateConfig › Spatie\LaravelIgnition › UpdateConfigController GET|HEAD api/v1/note .......................................................................... note.index › NoteController@index POST api/v1/note .......................................................................... note.store › NoteController@store GET|HEAD api/v1/note/create ................................................................. note.create › NoteController@create GET|HEAD api/v1/note/{note} ..................................................................... note.show › NoteController@show PUT|PATCH api/v1/note/{note} ................................................................. note.update › NoteController@update DELETE api/v1/note/{note} ............................................................... note.destroy › NoteController@destroy GET|HEAD api/v1/note/{note}/edit ................................................................ note.edit › NoteController@edit GET|HEAD sanctum/csrf-cookie .................................. sanctum.csrf-cookie › Laravel\Sanctum › CsrfCookieController@show 迅雷请求(同邮递员) JSON 请求 { "title": "Hello World", "content": "Lorem ipsum." } 尝试发出 JSON POST 请求并获取状态:405 方法不允许并且我正在使用 php artisan 服务,如果需要,我可以提供 GIT 项目。请告诉我。 您的验证规则看起来不正确。在您的 NoteRequest 类中,规则应该是一个关联数组,其中键是字段名称,值是验证规则。但是,在您的代码中,规则被定义为以逗号分隔的字符串列表。这可能会导致验证失败并返回 405 Method Not allowed 错误。 public function rules() { return [ 'title' => 'required|max:255|min:3', 'content' => 'nullable|max:255|min:10', ]; }
通过更少的 Java API 调用来映射 Google 云端硬盘内容的有效方法
大家好,我有一个代码,用于列出共享驱动器中存在的文件(以便稍后下载并创建相同的文件夹路径) 目前我做这样的事情: 哈希映射 大家好,我有一个代码,用于列出共享驱动器中存在的文件(以便稍后下载并创建相同的文件夹路径) 目前我正在做这样的事情: HashMap<String, Strin> foldersPathToID = new HashMap<>(); //searching all folders first saving their IDs searchAllFoldersRecursive(folderName.trim(), driveId, foldersPathToID); //then listing files in all folders HashMap<String, List<File>> pathFile = new HashMap<>(); for (Entry<String, String> pathFolder : foldersPathToID.entrySet()) { List<File> result = search(Type.FILE, pathFolder.getValue()); if (result.size() > 0) { String targetPathFolder = pathFolder.getKey().trim(); pathFile.putIfAbsent(targetPathFolder, new ArrayList<>()); for (File file : result) { pathFile.get(targetPathFolder).add(file); } } } 递归方法在哪里: private static void searchAllFoldersRecursive(String nameFold, String id, HashMap<String, String> map) throws IOException, RefreshTokenException { map.putIfAbsent(nameFold, id); List<File> result; result = search(Type.FOLDER, id); // dig deeper if (result.size() > 0) { for (File folder : result) { searchAllFoldersRecursive(nameFold + java.io.File.separator + normalizeName(folder.getName()), folder.getId(), map); } } } 搜索功能是: private static List<com.google.api.services.drive.model.File> search(Type type, String folderId) throws IOException, RefreshTokenException { String nextPageToken = "go"; List<File> driveFolders = new ArrayList<>(); com.google.api.services.drive.Drive.Files.List request = service.files() .list() .setQ("'" + folderId + "' in parents and mimeType" + (type == Type.FOLDER ? "=" : "!=") + "'application/vnd.google-apps.folder' and trashed = false") .setPageSize(100).setFields("nextPageToken, files(id, name)"); while (nextPageToken != null && nextPageToken.length() > 0) { try { FileList result = request.execute(); driveFolders.addAll(result.getFiles()); nextPageToken = result.getNextPageToken(); request.setPageToken(nextPageToken); return driveFolders; } catch (TokenResponseException tokenError) { if (tokenError.getDetails().getError().equalsIgnoreCase("invalid_grant")) { log.err("Token no more valid removing it Please retry"); java.io.File cred = new java.io.File("./tokens/StoredCredential"); if (cred.exists()) { cred.delete(); } throw new RefreshTokenException("Creds invalid will retry re allow for the token"); } log.err("Error while geting response with token for folder id : " + folderId, tokenError); nextPageToken = null; } catch (Exception e) { log.err("Error while reading folder id : " + folderId, e); nextPageToken = null; } } return new ArrayList<>(); } 我确信有一种方法可以通过很少的 api 调用(甚至可能是一个调用?)对每个文件(使用文件夹树路径)进行正确的映射,因为在我的版本中,我花了很多时间进行调用 service.files().list().setQ("'" + folderId+ "' in parents and mimeType" + (type == Type.FOLDER ? "=" : "!=") + "'application/vnd.google-apps.folder' and trashed = false").setPageSize(100).setFields("nextPageToken, files(id, name)"); 每个子文件夹至少一次......并且递归搜索所有内容需要很长时间。最后,映射比下载本身花费的时间更多...... 我搜索了文档,也在此处搜索,但没有找到任何内容来列出具有一个库的所有驱动器调用任何想法? 我想使用专用的 java API 来获取共享 GoogleDrive 中的所有文件及其相对路径,但调用次数尽可能少。 提前感谢您的时间和答复 我建议您使用高效的数据结构和逻辑来构建文件夹树并将文件映射到其路径,如下所示 private static void mapDriveContent(String driveId) throws IOException { // HashMap to store folder ID to path mapping HashMap<String, String> idToPath = new HashMap<>(); // HashMap to store files based on their paths HashMap<String, List<File>> pathToFile = new HashMap<>(); // Fetch all files and folders in the drive List<File> allFiles = fetchAllFiles(driveId); // Build folder path mapping and organize files for (File file : allFiles) { String parentId = (file.getParents() != null && !file.getParents().isEmpty()) ? file.getParents().get(0) : null; String path = buildPath(file, parentId, idToPath); if (file.getMimeType().equals("application/vnd.google-apps.folder")) { idToPath.put(file.getId(), path); } else { pathToFile.computeIfAbsent(path, k -> new ArrayList<>()).add(file); } } // Now, pathToFile contains the mapping of paths to files // Your logic to handle these files goes here } private static List<File> fetchAllFiles(String driveId) throws IOException { // Implement fetching all files and folders here // Make sure to handle pagination if necessary // ... } private static String buildPath(File file, String parentId, HashMap<String, String> idToPath) { // Build the file path based on its parent ID and the idToPath mapping // ... }
如何使用LocalDate从spring查询elasticsearch
有这个搜索查询: 最终 SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(QueryBuilders.rangeQuery("updateTime").gte(LocalDate.now())).build(); 最终名单 有此搜索查询: final SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(QueryBuilders.rangeQuery("updateTime").gte(LocalDate.now())).build(); final List<ActivityValue> listOf = elasticsearchTemplate.queryForList(searchQuery, ActivityValue.class); 使用实体 ActivityValue: @Document(indexName = "tracking1", type = "activity") public class ActivityValue { @Id private String id; @Field(type = FieldType.Date, index = false, store = true, format = DateFormat.custom, pattern = "yyyy-MM-dd") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") private LocalDate updateTime; @Field(type = FieldType.Object, includeInParent = true) private Vendor vendor; @Field(type = FieldType.Object, includeInParent = true) private QCriteria quality; public ActivityValue() { } //setter and getter } 如果我运行查询并尝试接收列表,我会收到以下异常: caused by: java.io.IOException: can not write type [class java.time.LocalDate] 实体之前存储的实际日期为LocalDate。 我不确定查询 Elasticsearch 并解决此错误的最佳/最简单方法是什么。有人可以帮忙吗? final SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(QueryBuilders.rangeQuery("updateTime").gte(LocalDate.now().toString())).build(); final List<ActivityValue> listOf = elasticsearchTemplate.queryForList(searchQuery, ActivityValue.class); 我通过使用 LocalDate.now().toString() 而不是 LocalDate.now() 解决了这个问题 而是使用自定义模式(您还必须在任何 @Field 上设置),您可以从 objectmapper 禁用默认行为。默认行为是将 LocalDate 转换为时间戳。 //For LocalDateTime usage final ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule()); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); final JacksonJsonpMapper jsonpMapper = new JacksonJsonpMapper(objectMapper); 这样做,您可以确保自动以 yyyy-MM-ddThh:mm:ss.SSSZ 格式存储,而不是在 epoc 时间后的几毫秒内存储。 现在您可以将数据设置为: static class Data { private LocalDateTime dateTime; } 并使用类似于以下的查询进行搜索: RangeQuery rangeQuery = new RangeQuery.Builder().field("dateTime").lt(JsonData.of(LocalDateTime.now())).build(); 没有问题或任何额外的努力。
Laravel 购物车页面,表单内有一个表单,用于处理删除和提交数据更新数据库
我有一个购物车页面,表格内有一个表格,也许你可以建议我应该做什么? 根据图片,我给出的蓝色圆圈是一个表格 我的刀片代码 我有一个购物车页面,表格内有一个表格,也许你可以建议我应该做什么?根据图片我给出的蓝色圆圈是一个表格我的刀片代码<table class="table"> <thead> <tr> <th scope="col">No</th> <th scope="col">Nama Barang</th> <th scope="col">Quantity</th> <th scope="col">Action</th> </tr> </thead> <tbody> @php $no = 1; @endphp @forelse ($permintaans as $b) <tr> <td>{{ $no ++ }}</td> <td> {{ $b->nama_kategori }} {{ $b->nama_atk }} </td> <td> <form action="{{ route('permintaan.update', $b->id) }}" method="POST" style="display: inline-block;"> @csrf @method('PUT') <div class="input-group input-group-sm mb-3"> <input type="number" class="form-control" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-sm" name="satuan_permintaan" min="0" max={{ $b->stok }} required> <span class="input-group-text" id="inputGroup-sizing-sm">{{ $b->subsatuan_atk }}</span> </div> </td> <td> <form action="{{ route('permintaan.destroy', $b->id) }}" method="POST" style="display: inline-block;"> @csrf @method('DELETE') <button type="submit" class="btn custom2-btn"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="red" class="bi bi-trash" viewBox="0 0 16 16"> <path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0z"/> <path d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1zM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4zM2.5 3h11V2h-11z"/> </svg></button> </form> </td> </tr> @empty @endforelse </tbody> </table> 我的控制器public function store(Request $request) { $task = new Permintaan(); $task->atk_id = $request->input('atk_id'); $task->proses = 'Proses'; if (Permintaan::where('atk_id', $task->atk_id)->exists()){ return redirect('/atk/permintaan')->with(['info' => 'ATK Sudah Dalam Permintaan']); } else{ $task->save(); return redirect()->route('permintaan.index'); } } public function destroy($id) { $permintaan = Permintaan::find($id); $permintaan->delete(); return redirect()->route('permintaan.index'); } 我要处理删除并提交数据更新数据库 在开始销毁表单之前关闭更新表单第一个表单标签(缺少)。