В 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];
}
}
Но тогда?
Что мне делать?На веб-сайте это показывает, что я выбрал файл, но когда вы нажимаете на кнопку «загрузить», веб-сайт просто возвращает ошибку, например, если файл не загружен.Должен ли я написать код, который обрабатывает загрузку файла или что?
Я в некотором роде потерян ...
Редактировать:
На самом деле у меня все получилось ... Просто изменив код отсюда: Какаоwebkit: как получить загрузку файлов / доступ к файловой системе в 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];
}
}
Наслаждайтесь!