【发布时间】:2011-11-29 09:36:09
【问题描述】:
WebView 有一个方法叫做
- (void)webView:(WebView *)sender runOpenPanelForFileButtonWithResultListener:(id < WebOpenPanelResultListener >)resultListener
但是几乎有 0 个文档和详细信息。在里面我显示一个打开的文件对话框并获取选定的文件名。
像这样
- (void)webView:(WebView *)sender runOpenPanelForFileButtonWithResultListener:(id < WebOpenPanelResultListener >)resultListener
{
NSOpenPanel* openDlg = [NSOpenPanel openPanel];
[openDlg setCanChooseFiles:YES];
[openDlg setCanChooseDirectories:NO];
// process the files.
if ( [openDlg runModal] == NSOKButton )
{
NSString* fileString = [[openDlg URL]absoluteString];
[resultListener chooseFilename:fileString];
}
}
然后呢?
我该怎么办?在网站上,它显示我选择了一个文件,但是当您单击上传网站时,只会返回一个错误,就像没有上传文件一样。我应该编写处理文件上传的代码还是什么?
我有点迷路了……
编辑:
事实上我得到了它的工作....只需从这里更改代码:Cocoa webkit: how to get file upload / file system access in webkit 一点,因为某些部分已被弃用
- (void)webView:(WebView *)sender runOpenPanelForFileButtonWithResultListener:(id < WebOpenPanelResultListener >)resultListener
{
// Create the File Open Dialog class.
NSOpenPanel* openDlg = [NSOpenPanel openPanel];
// Enable the selection of files in the dialog.
[openDlg setCanChooseFiles:YES];
// Enable the selection of directories in the dialog.
[openDlg setCanChooseDirectories:NO];
if ( [openDlg runModal] == NSOKButton )
{
NSArray* URLs = [openDlg URLs];
NSMutableArray *files = [[NSMutableArray alloc]init];
for (int i = 0; i <[URLs count]; i++) {
NSString *filename = [[URLs objectAtIndex:i]relativePath];
[files addObject:filename];
}
for(int i = 0; i < [files count]; i++ )
{
NSString* fileName = [files objectAtIndex:i];
[resultListener chooseFilename:fileName];
}
[files release];
}
}
享受吧!
【问题讨论】:
-
您使用的是什么语言?
-
Objective-c,但我现在可以工作了
-
或者,将解决方案作为答案发布,然后稍后接受您自己的答案(或更好的答案,如果有的话)。
-
runOpenPanelForFileButtonWithResultListener 这个方法不适合我
标签: cocoa file upload webview uploading