精华内容
下载资源
问答
  • VC_CFileOpen打开文件对话框中实现多选文件.visual c++
  • ext结合swfUpload 多选文件上传,让你一次爽个够,多选文件
  • 主要介绍了asp.net批量多选文件上传解决方案,基于flex开发的一个多选上传功能,需要的朋友可以参考下
  • 属性lisp的同学都知道,lisp多选文件没有现成的函数于是用练手写了一个,附件是编译好的dll文件源。 lisp调用方式 加载之后 (command "NETLOAD" "DLL文件完整路径" ) (ListfunSelfiles "打开文本" "txt") 参数1...
  • 一个在火狐、Chrome、Opera浏览器中的选择文件功能,JS连续多选文件,选中文件后立即在旁边显示文件名,可继续选择,就像QQ邮箱里的添加附加功能类似。下面请看青岛星网跟大家分享:JS多选文件并显示文件名列表若...

    一个在火狐、Chrome、Opera浏览器中的选择文件功能,JS连续多选文件,选中文件后立即在旁边显示文件名,可继续选择,就像QQ邮箱里的添加附加功能类似。下面请看青岛星网跟大家分享:JS多选文件并显示文件名列表

    若需要把这些选择的文件上传或发送,则需要相应的服务器端脚本来辅助实现,今天主要是来演示JS的实现代码。

    JavaScript多选文件的实现

    请选择文件:

    • 没有选择文件

    function makeFileList(){

    var input = document.getElementById("filesToUpload");

    var ul = document.getElementById("fileList");

    while (ul.hasChildNodes()){

    ul.removeChild(ul.firstChild);

    }

    for(var i = 0; i < input.files.length; i++){

    var li = document.createElement("li");

    li.innerHTML = input.files[i].name;

    ul.appendChild(li);

    }

    if(!ul.hasChildNodes()){

    var li = document.createElement("li");

    li.innerHTML = "没有文件被选中.";

    ul.appendChild(li);

    }

    }

    展开全文
  • ASP.NET+flash 多选文件上传
  • asp.net+flash多选文件上传
  • asp.net+Flash多选文件上传 利用flash进行多文件上传
  • Structs2+ExtJs多文件上传,解压后加入工程就可以使用,支持多选文件一次性加入列表,多文件上传,带有进度条和传输速度等等。。。。
  •   安卓开启系统原生文件浏览器的教程网上已经烂大街了,但是很少有文章提及如何进行多选文件。我们在开启原生的文件浏览器时,默认是单选的,即点击文件立即返回uri,想实现多选只需要加入语句:   inte...

    转载请注明出处:codog_main的博客

    前言

      有时我们想选择文件,但是又懒得自己去写一个文件浏览器,使用安卓原生的文件选择器或引入第三方库无疑是最佳选择,因为写自己不喜欢的东西真的非常痛苦。
      安卓开启系统原生文件浏览器的教程在网上已经烂大街了,但是很少有文章提及如何进行多选文件。我们在开启原生的文件浏览器时,默认是单选的,即点击文件立即返回uri,想实现多选只需要加入语句:
      intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
      此时就可以多选文件了(长按文件图标)。
      最近,朋友希望我的软件能加入这个功能,于是就找时间研究了一下。按照朋友的说辞,应该是有一个参数可以实现这个功能的,但是我发现网上(或者说是百度引擎),严重缺乏这方面的文章。没办法,我只能试着看看有没有相关的参数,于是在AS中敲入“Intent.MULT”,没想到还真出现了这句“Intent.EXTRA_ALLOW_MULTIPLE”,于是我放网上一查,找到了stackoverflow上的这篇提问,问题也就解决了。
      本篇文章只介绍原生文件浏览器如何实现多选,对于返回uri的解析会放到另一篇文章中进行讲解。
      对原生浏览器uri的解析异常困难,网上流传很广的方法来自国外论坛,但具体是哪个大神研究出来的也不可考究了。我翻遍了国内外论坛、github都找不到让我满意的答案,不同版本的系统返回的uri差异太大了,网上还没有一条万能公式可以解决uri解析问题,我的方法或许并不完善,但总比那些毫无灵魂的复制粘贴文要好多了,这篇文章正在准备中。

    代码

      为了让没接触过的人有个总体的了解,也方便不知道如何启动原生文件浏览器的人无需再去找其他文章,下面放出完整代码。其中的getPath函数就是对uri的解析,她可以把uri转化为真实的文件路径,这部分留到另一篇文章中讲解。

    MainActivity.java:

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //注册添加文件按钮
            findViewById(R.id.selectButton).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);//意图:文件浏览器
                    intent.setType("*/*");//无类型限制
                    intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);//关键!多选参数
                    intent.addCategory(Intent.CATEGORY_OPENABLE);
                    startActivityForResult(intent, 1);
                }
            });
        }
    
        /**
         * 获取返回值uri
         */
        @SuppressLint("NewApi")//minSdkVersion需要在15以上
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode == Activity.RESULT_OK) {
                if (data.getData() != null) {
                    //单次点击未使用多选的情况
                    try {
                        Uri uri = data.getData();
                        //TODO 对获得的uri做解析,这部分在另一篇文章讲解
                        //String path = getPath(getApplicationContext(),uri);
                        //TODO 对转换得到的真实路径path做相关处理
                        System.out.println(uri);
                    } catch (Exception e) { }
                }
                else{
                    //长按使用多选的情况
                    ClipData clipData = data.getClipData();
                    if (clipData != null) {
                        List<String> pathList=new ArrayList<>();
                        for (int i = 0; i < clipData.getItemCount(); i++) {
                            ClipData.Item item = clipData.getItemAt(i);
                            Uri uri = item.getUri();
                            //TODO 对获得的uri做解析,这部分在另一篇文章讲解
                            //String path = getPath(getApplicationContext(),uri);
                            //routers.add(path);
                            pathList.add(uri.toString());
                        }
                        //TODO 对转换得到的真实路径path做相关处理
                        System.out.println(pathList);
                    }
                }
            }
        }
    }

    activity_main.html:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <Button
            android:id="@+id/selectButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="打开原生文件浏览器"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"/>
        
    </android.support.constraint.ConstraintLayout>
    展开全文
  • 多选文件不在同一目录下,出现BUG。 比如在一个目录下搜索文件名,选中几个不在同一文件夹下面的文件CFileDialog OpenDialog(TRUE,NULL,"",OFN_ALLOWMULTISELECT|OFN_ENABLESIZING|OFN_HIDEREADONLY); if ...

    当多选文件不在同一目录下,出现BUG。
    比如在一个目录下搜索文件名,选中几个不在同一文件夹下面的文件

    CFileDialog OpenDialog(TRUE,NULL,"",OFN_ALLOWMULTISELECT|OFN_ENABLESIZING|OFN_HIDEREADONLY);
    if (OpenDialog.DoModal())
    {
        CString path;
        IShellItemArray *pResult=OpenDialog.GetResults();
        DWORD dwCount=0;
        IShellItem *pItem;
        WCHAR *pFilePath;
        pResult->GetCount(&dwCount);
        for (DWORD i=0;i<dwCount;i++)
        {
            pResult->GetItemAt(i,&pItem);
            pItem->GetDisplayName(SIGDN_FILESYSPATH,&pFilePath);
            path+=pFilePath;
            path+="\n";
        }
        AfxMessageBox(path);
    }
    展开全文
  • OpenFileDialogEx,既能选择文件又能选择文件夹的弹出选择扩展控件
  • 使用本库可以把沙盒中文件通过AirDrop、QQ、邮件发送出来,支持多选文件、发文件夹。 pod 'SendSandBoxFileSwift' pod install 直接使用 let fileListVC = FileListTableViewController(); self....
  • 但是,如果我多选文件,再这样右键操作,则会运行”我的应用“N次。 我想问,有没有办法能在我多选的时候,让”我的应用“只运行一次且获得我多选的所有文件的命令行参数(这个文件的绝对路径)。求VB解决方案,...
  • 关于使用getopenfilename多选...以下是多选文件的代码 1 bool GetNeedOpenFilePath(vector<tstring>& vectFiles, HWND hwnd ) 2 { 3 OPENFILENAME ofn; 4 TCHAR szOpenFileNames[80*MAX_PATH] =...

    关于使用getopenfilename多选多个文件是可以的。

    以下是多选文件的代码

     1 bool GetNeedOpenFilePath(vector<tstring>& vectFiles, HWND hwnd )
     2 {
     3     OPENFILENAME ofn;
     4     TCHAR szOpenFileNames[80*MAX_PATH] = {0};
     5     TCHAR szPath[MAX_PATH];
     6     TCHAR szFileName[80*MAX_PATH];
     7 
     8     int nLen = 0;
     9     TCHAR* p = NULL;
    10     ZeroMemory(&ofn, sizeof(ofn));
    11 
    12     ofn.lStructSize = sizeof(ofn);
    13     ofn.hwndOwner = hwnd;
    14     //ofn.hInstance = (HMODULE)GetCurrentProcess();
    15     ofn.lpstrFile = szOpenFileNames;
    16     ofn.nMaxFile = sizeof(szOpenFileNames);
    17     ofn.lpstrFile[0] = _T('\0');
    18     ofn.lpstrFilter = _T("All Files(*.*)\0*.*\0\0");
    19     ofn.nFilterIndex = 1;  
    20     ofn.lpstrFileTitle = NULL;  
    21     ofn.nMaxFileTitle = 0;
    22     ofn.lpstrTitle = I18NSTR(L"#IDS_FILESYSTEM_OPEN_FILE_DIR");
    23     ofn.Flags = OFN_ENABLESIZING | OFN_FILEMUSTEXIST| OFN_ALLOWMULTISELECT| OFN_HIDEREADONLY /*| OFN_ENABLEHOOK *//*| OFN_ENABLEINCLUDENOTIFY*/| OFN_EXPLORER;
    24     //ofn.lpfnHook = OFNHookProc;
    25     if (!::GetOpenFileName(&ofn))  //如果打开文件失败,则不操作
    26     {
    27         return false;
    28     }
    29 
    30     //把第一个文件名前的复制到szPath,即:  
    31     //如果只选了一个文件,就复制到最后一个'/'  
    32     //如果选了多个文件,就复制到第一个NULL字符  
    33     lstrcpyn(szPath,szOpenFileNames,ofn.nFileOffset);
    34 
    35     //当只选了一个文件时,下面这个NULL字符是必需的.  
    36     //这里不区别对待选了一个和多个文件的情况
    37 
    38     szPath[ofn.nFileOffset] = '\0';
    39     nLen = lstrlen(szPath);
    40     if (szPath[nLen-1] != '\\')  //如果选了多个文件,则必须加上'//'  
    41     {
    42         lstrcat(szPath,_T("\\"));
    43     }
    44 
    45     p = szOpenFileNames + ofn.nFileOffset;  //把指针移到第一个文件  
    46     ZeroMemory(szFileName, sizeof(szFileName));
    47 
    48     while(*p)
    49     {
    50         //lstrcat(szFileName, szPath);     //给文件名加上路径
    51         //lstrcat(szFileName, p);             //加上文件名
    52         tstring tstrFile = _UTILITY::TCHARToUnicode(p);
    53         tstring tstrFilePath = szPath;
    54         tstrFilePath += tstrFile;
    55         vectFiles.push_back(tstrFilePath);
    56         //lstrcat(szFileName, _T("\n"));   //换行
    57         p += lstrlen(p) + 1;             //移至下一个文件
    58     }
    59 
    60     return true;
    61 }

    但是关于使用getopenfilename()函数获取多选文件夹的路径问题,需要自定义一些模板资源。具体实现方式还需研究下。

     

    使用getsavefilename()函数可以获取另存为路径:

     1 bool GetSaveAsFilePath(tstring tstrFilePath, HWND hwnd)
     2 {
     3     OPENFILENAME ofn;
     4     TCHAR szOpenFileNames[80*MAX_PATH] = {0};
     5     TCHAR szPath[MAX_PATH];
     6     TCHAR szFileName[80*MAX_PATH];
     7 
     8     int nLen = 0;
     9     TCHAR* p = NULL;
    10     ZeroMemory(&ofn, sizeof(ofn));
    11 
    12     ofn.lStructSize = sizeof(ofn);
    13     ofn.hwndOwner = NULL;
    14     //ofn.hInstance = (HMODULE)GetCurrentProcess();
    15     ofn.lpstrFile = szOpenFileNames;
    16     ofn.nMaxFile = sizeof(szOpenFileNames);
    17     ofn.lpstrFile[0] = _T('\0');
    18     ofn.lpstrFilter = _T("All Files(*.*)\0*.*\0\0");
    19     ofn.nFilterIndex = 1;  
    20     ofn.lpstrFileTitle = NULL;  
    21     ofn.nMaxFileTitle = 0;
    22     ofn.lpstrTitle = I18NSTR(L"#IDS_FILESYSTEM_SAVE_AS");
    23     ofn.Flags = OFN_HIDEREADONLY | OFN_PATHMUSTEXIST | OFN_EXPLORER;
    24     ofn.FlagsEx = OFN_EX_NOPLACESBAR;
    25     //ofn.lpfnHook = OFNHookProc;
    26     if (!::GetSaveFileName(&ofn))  //如果打开文件失败,则不操作
    27     {
    28         return false;
    29     }
    30 
    31     tstrFilePath = ofn.lpstrFile;
    32     return true;
    33 }

     

    转载于:https://www.cnblogs.com/lisuyun/p/5012034.html

    展开全文
  • CFileDialog多选文件问题

    千次阅读 2008-01-27 20:41:00
    CFileDialog多选文件 受到m_ofn.nMaxFile(缓冲区的大小)和lpstrFile(存放文件名的缓冲区)的限制。默认情况下,CFileDialog的m_ofn.nMaxFile是260;开始改:TCHAR *pBuffer=new TCHAR[MAX_PATH*100]; m_ofn....
  • 设置ofallowmultiselect为true就可以多选了; openpicturedialog1.Files.Text中拿到,把它showmessage出来。
  • JS 多选文件或者选择文件夹

    千次阅读 2019-04-28 14:49:00
    %--文件多选--%> <input type="file" name="file" id="file" multiple="multiple" /> <%--选择文件夹下的所有文件,包含子文件夹--%> <%-- <input type="file" name="file1" id...
  • WIN10如何多选文件

    2020-09-02 18:32:48
    按ctrl即可。
  • js 多选文件获取

    2017-07-17 16:56:00
    <html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body>...input type="file" multiple="multiple" id="test">...ul ...
  • CFileDialog 多选文件

    千次阅读 2010-06-05 14:39:00
    CFileDialog这个文件选择框类默认是单选的,那么如果要多选该怎么办呢?这里给出一种完整的做法。
  • 关于利用C#如何在PIE波段合成中多选文件,对要素集进行遍历的功能实现! 创建窗体 首先还是先创建一个窗体,可利用pie框架,也可以直接创建窗体,我这里事先利用pie框架创建好了一个窗体,如图1.1.1,再添加一个...
  • 多选文件上传,已经非常多了,选择性多了可能有时候要比较下哪个更合适,结合到项目中使用更方便才是最重要的。很多的多选上传基本上都是调用的swf文件,确实用flash 或flex开发一个多选上传的功能很方便,比如flex...
  • 多选文件上传,已经非常多了,选择性多了可能有时候要比较下哪个更合适,结合到项目中使用更方便才是最重要的。很多的多选上传基本上都是调用的swf文件,确实用flash 或flex开发一个多选上传的功能很方便,比如flex...
  • //打开多个文件 intent.addCategory(Intent.CATEGORY_DEFAULT); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); startActivityForResult(Intent.createChooser(intent,""), 2);

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,638
精华内容 21,055
关键字:

怎么多选文件