问题描述
假如我有一个ZIP文件是在另外一台服务器上,知道这个文件的完整路径,是否可以对它进行在线解压?
解决方案
本帖最后由 aa258378001 于 2014-12-01 18:06:40 编辑
解决方案二:
没权限啊。都知道路径了,为什么不下载来解压?
解决方案三:
如果是ftp并且有写的权限就可以,如果是局域网并且有可写权限的共享账号和密码就可以,如果就是个http你可以开个接口出来请求接口传入参数解压指定路径如果只是一个http当然不能,这就跟有人问浏览器可不可以直接执行1个可执行程序一样
解决方案四:
直接下来解压就行了,干吗要在服务器上面解压
解决方案五:
在线解压,完全没有任何意义啊既然服务器上放的是压缩包,必然是为了节省硬盘空间才这样设计的而你却要把它解压到服务器上,这不是占有了两倍的空间了吗,完全有悖初衷而且如果其中一个用户解压了,另一个用户再解压,这不是多此一举了吗还不如服务器上直接放文件夹,不要压缩了
解决方案六:
在、FtP服务器上部署服务,调用服务去解压缩
解决方案七:
用Gzip解压文件//选择文件privatevoidbutton1_Click(objectsender,EventArgse){openFileDialog1.Filter="压缩文件(*.gzip)|*.gzip";if(openFileDialog1.ShowDialog()==DialogResult.OK){textBox1.Text=openFileDialog1.FileName;}}//解压文件privatevoidbutton2_Click(objectsender,EventArgse){if(String.IsNullOrEmpty(textBox1.Text)){MessageBox.Show("请选择GZIP文件!","信息提示");return;}if(String.IsNullOrEmpty(textBox2.Text)){MessageBox.Show("请输入解压文件名!","信息提示");return;}stringstr1=textBox1.Text;stringstr2=textBox2.Text.Trim();byte[]myByte=null;FileStreammyStream=null;FileStreammyDesStream=null;GZipStreammyDeComStream=null;try{myStream=newFileStream(str1,FileMode.Open);myDeComStream=newGZipStream(myStream,CompressionMode.Decompress,true);myByte=newbyte[4];intmyPosition=(int)myStream.Length-4;myStream.Position=myPosition;myStream.Read(myByte,0,4);myStream.Position=0;intmyLength=BitConverter.ToInt32(myByte,0);byte[]myData=newbyte[myLength+100];intmyOffset=0;intmyTotal=0;while(true){intmyBytesRead=myDeComStream.Read(myData,myOffset,100);if(myBytesRead==0)break;myOffset+=myBytesRead;myTotal+=myBytesRead;}myDesStream=newFileStream(str2,FileMode.Create);myDesStream.Write(myData,0,myTotal);myDesStream.Flush();MessageBox.Show("解压文件完成!");}catch{}finally{myStream.Close();myDeComStream.Close();myDesStream.Close();}}
解决方案八:
只要有读权限,把它读到Stream中就可以解压了,不一定要下载到本地