以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]没上传成功  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65215)

--  作者:liujywwy
--  发布时间:2015/3/11 16:01:00
--  [求助]没上传成功
上传按钮代码如下。觉的红色代码有问题,ml的值应该不是最后创建文件夹的目录。这个怎么改?
Dim dlg As new OpenFileDialog
If dlg.ShowDialog = DialogResult.OK Then
    Dim xg As Integer = dlg.FileName.LastIndexOf("\\")
    Dim fname As String = dlg.FileName.SubString(xg + 1)   \'获取所选文件名称
    
    
    Dim ftp As new FTPClient
    ftp.Host = "192.168.1.35"
    ftp.Account = "tester"
    ftp.Password = "tester"
    
    Dim lj As String = "/待用户现场确认版本_产线禁止使用/2015/" & Tables("临时版本跟踪表").current("临时版本编号") & "(" & Tables("临时版本跟踪表").current("客户") & "_" & Tables("临时版本跟踪表").current("博达机型") & ")"
    Dim ml As String = lj  & "/" & Format(Date.now, "yyyy-MM-dd HH-mm-ss")
    msgbox(ml)
    
    Dim sts As List(of String) = ftp.GetFileList(ml)   \'获取当前目录的文件列表
    
    If sts.Count > 0 Then
        For Each st As String In sts
            If st = fname Then
                MessageBox.Show("服务器上存在同名文件!","请注意")
                Return   
            End If
        Next
        
        e.Form.text = "所选文件上传中...."
        If ftp.Upload(dlg.FileName,ml & "\\" & fname) = True Then  \'若成功上传
            Functions.Execute("刷新ListView")
            e.Form.text = "版本目录文件list"
            MessageBox.Show("恭喜你上传成功!","BDSMS提示您")
        Else
            MessageBox.Show("不好意思,所选文件上传失败!,请联系刘基永1034","BDSMS提醒你")
            e.Form.text = "版本目录文件list"
        End If
    End If
End If

--  作者:有点甜
--  发布时间:2015/3/11 16:04:00
--  
 看不懂你什么意思,你ml的路径是根据时间在变的啊,每一次都不同啊,你必须加入对应的文件夹,才能把文件上传进去那个路径啊
--  作者:liujywwy
--  发布时间:2015/3/11 16:18:00
--  

ml就是随时间变化的文件夹。我现在就是不知道如何把之前afterload创建的文件夹名取出来。在这个文件夹下上传文件。

图片点击可在新窗口打开查看此主题相关图片如下:ml.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2015/3/11 16:22:00
--  

 用变量存储

 

Vars("最后一个文件夹") = "d:\\test"


--  作者:liujywwy
--  发布时间:2015/3/11 16:51:00
--  
Vars("最后一个文件夹") = "d:\\test"
这个是指定了文件夹,并没有动态获取最后一个文件夹吧。
afterload创建文件夹的代码如下:先创建lj,然后是ml。现在就是想知道如何把最后创建的ml作为上传的文件夹。

ftp.ChangeDir("/待用户现场确认版本_产线禁止使用/2015")   \'进入到待用户现场确认版本_产线禁止使用\\2015目录
Dim lj As String = "/待用户现场确认版本_产线禁止使用/2015/" & Tables("临时版本跟踪表").current("临时版本编号") & "(" & Tables("临时版本跟踪表").current("客户") & "_" & Tables("临时版本跟踪表").current("博达机型") & ")"
If ftp.DirExists(lj) = False Then   \'不存在临时版本编号目录时先创建临时版本编号目录
    ftp.MakeDir(lj)
End If
Dim ml As String = lj  & "/" & Format(Date.now, "yyyy-MM-dd HH-mm-ss")
If ftp.DirExists(ml) = False Then  \'按照系统时间来创建时间目录
    ftp.MakeDir(ml)
End If

--  作者:有点甜
--  发布时间:2015/3/11 16:53:00
--  

 呃,能不能变通下???

 

Vars("最后一个文件夹") = ml


--  作者:liujywwy
--  发布时间:2015/3/12 10:46:00
--  
还是没有成功上传,好像代码没执行。
afterload代码:
ftp.ChangeDir("/待用户现场确认版本_产线禁止使用/2015")   \'进入到待用户现场确认版本_产线禁止使用\\2015目录
Dim lj As String = "/待用户现场确认版本_产线禁止使用/2015/" & Tables("临时版本跟踪表").current("临时版本编号") & "(" & Tables("临时版本跟踪表").current("客户") & "_" & Tables("临时版本跟踪表").current("博达机型") & ")"
If ftp.DirExists(lj) = False Then   \'不存在临时版本编号目录时先创建临时版本编号目录
    ftp.MakeDir(lj)
End If
Dim ml As String = lj  & "/" & Format(Date.now, "yyyy-MM-dd HH-mm-ss")
If ftp.DirExists(ml) = False Then  \'按照系统时间来创建时间目录
    ftp.MakeDir(ml)
End If
vars("zhygwjj") = ml

上传代码:
Dim sts As List(of String) = ftp.GetFileList(Vars("zhygwjj"))   \'获取当前目录的文件列表
    
    If sts.Count > 0 Then
        For Each st As String In sts
            If st = fname Then
                MessageBox.Show("服务器上存在同名文件!","请注意")
                Return   
            End If
        Next
        
        e.Form.text = "所选文件上传中...."
        If ftp.Upload(dlg.FileName,Vars("zhygwjj") & "\\" & fname) = True Then  \'若成功上传
            Functions.Execute("刷新ListView")
            e.Form.text = "版本目录文件list"
            MessageBox.Show("恭喜你上传成功!","BDSMS提示您")
        Else
            MessageBox.Show("不好意思,所选文件上传失败!,请联系刘基永1034","BDSMS提醒你")
            e.Form.text = "版本目录文件list"
        End If
    End If


图片点击可在新窗口打开查看此主题相关图片如下:全局变量.png
图片点击可在新窗口打开查看



--  作者:有点甜
--  发布时间:2015/3/12 10:49:00
--  
 最基本的调试,是你加入msgbox,弹出对应的值,和看有没有执行对应的代码啊。
--  作者:liujywwy
--  发布时间:2015/3/12 10:54:00
--  
没有执行
msgbox(Vars("zhygwjj"))返回的也是最后创建的文件夹。
但是之后的上传代码没有执行。

    If sts.Count > 0 Then
        For Each st As String In sts
            If st = fname Then
                MessageBox.Show("服务器上存在同名文件!","请注意")
                Return   
            End If
        Next
        
        e.Form.text = "所选文件上传中...."
        If ftp.Upload(dlg.FileName,Vars("zhygwjj") & "\\" & fname) = True Then  \'若成功上传
            Functions.Execute("刷新ListView")
            e.Form.text = "版本目录文件list"
            MessageBox.Show("恭喜你上传成功!","BDSMS提示您")
        Else
            MessageBox.Show("不好意思,所选文件上传失败!,请联系刘基永1034","BDSMS提醒你")
            e.Form.text = "版本目录文件list"
        End If
    End If

--  作者:有点甜
--  发布时间:2015/3/12 10:57:00
--  

改成这样

 

        For Each st As String In sts
            If st = fname Then
                MessageBox.Show("服务器上存在同名文件!","请注意")
                Return   
            End If
        Next
        
        e.Form.text = "所选文件上传中...."
        If ftp.Upload(dlg.FileName,Vars("zhygwjj") & "\\" & fname) = True Then  \'若成功上传
            Functions.Execute("刷新ListView")
            e.Form.text = "版本目录文件list"
            MessageBox.Show("恭喜你上传成功!","BDSMS提示您")
        Else
            MessageBox.Show("不好意思,所选文件上传失败!,请联系刘基永1034","BDSMS提醒你")
            e.Form.text = "版本目录文件list"
        End If