的WebView有一个方法叫如何允许在Cocoa中使用WebView上传文件?
- (void)webView:(WebView *)sender runOpenPanelForFileButtonWithResultListener:(id <WebOpenPanelResultListener>)resultListener
但几乎为0 doc和它的细节。在里面我显示一个打开的文件对话框并获取选定的文件名。
像这样
- (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];
}
}
享受!
什么语言你使用? – 2011-10-02 13:05:08
Objective-c,但我现在正在工作 – Dimillian
然后删除你的问题.. – 2011-10-02 15:26:31