/**
 *  文件上传
 * """
 * 我对文件上传代码实现的理解
 * 1. 首先我要把文件要指定一个上传的地方 比如:c:/file这个文件夹下
 *
 * 2. 再次我要得到上传文件的文件名称  比如 file1 那么此时这个文件的完整的路径 是 c:/file/file1
 *
 * 3. 那么此时c:/file/file1 就指向了file1 这个文件 那么此时 c:/file/file1 就代表一个文件
 *
 * 4. 那么我们就要操作这个文件 让它的内容或者说数据是前台上传的内容或者说数据(上传)
 *
 * 5. 那么在java 里 就提供了一个方法 让它由一个普通文件变成了一个代码可以操作的文件对象 File file = new File( c:/file/file1)
 *
 * 6. 此时 我们想在本地创建一个 c:/file/file1 这样的文件 那么首先应该创建 一个 c:/file 这样的文件夹file.getParent.mkdir() 这样文件夹就存在了
 *
 *
 * 7. 我们知道文件在代码里都是通过流的方式来传输 (数据通过流传输)那么想让file 这个对象能够写数据 就必须让它创建一个流对象
 *    我想让file 这个对象可以别人让往里写数据那么就必须创建它的的输出流对象(开放 让人随便写) java里这样实现  fileOutputStream = new FileOutputStream(file);
 *
 * 8. 此时本地这个 file 对象就做好了准备等待前台传的 formFile(这里假设前台传递文件名称叫formFile) 来往里写数据
 *
 * 9. 与后台相同 前台传的这个formFile我们也得让它变成流这样它才能实现写操作 它往一个文件里写数据 所以必须让它变成输入流 java里这样实现 inputStream = formFile.getInputStream();
 *
 * 10. 此时我们拿到了 fileOutputStream (等待输入流往里写数据)  inputStream(输入流能够写数据)
 *
 * 11 哈哈 此时 来吧 两个流结合就把数据写到了本地 完成了文件的上传 apache给了我们一个方法  IOUtils.copy(inputStream,fileOutputStream)当然 也可以用别的方法实现
 *
 *       上述理解完全是个人的理解如果有不正确的地方欢迎大神指出